[banshee/amazon] Add unmodified copy of amazon-ecs-2007-07-16-cs-library



commit 6ab999e5ce1dd2c946437cba244247278d4a5230
Author: Gabriel Burt <gabriel burt gmail com>
Date:   Tue Jan 27 11:46:54 2009 -0600

    Add unmodified copy of amazon-ecs-2007-07-16-cs-library
---
 .../amazon-ecs-2007-07-16-cs-library/ReadMe.html   |  209 +
 .../Amazon.ECS.Samples/Amazon.ECS.Samples.csproj   |   53 +
 .../Amazon.ECS.Samples/AmazonECSSamples.cs         |  285 +
 .../Amazon.ECS.Samples/BrowseNodeLookupSample.cs   |  212 +
 .../Amazon.ECS.Samples/CartAddSample.cs            |  552 +
 .../Amazon.ECS.Samples/CartClearSample.cs          |  552 +
 .../Amazon.ECS.Samples/CartCreateSample.cs         |  576 +
 .../Amazon.ECS.Samples/CartGetSample.cs            |  558 +
 .../Amazon.ECS.Samples/CartModifySample.cs         |  563 +
 .../CustomerContentLookupSample.cs                 | 5121 ++++++++
 .../CustomerContentSearchSample.cs                 | 5105 ++++++++
 .../Amazon.ECS.Samples/HelpSample.cs               |  215 +
 .../Amazon.ECS.Samples/ItemLookupSample.cs         | 5127 ++++++++
 .../Amazon.ECS.Samples/ItemSearchSample.cs         | 5142 ++++++++
 .../Amazon.ECS.Samples/ListLookupSample.cs         | 5132 ++++++++
 .../Amazon.ECS.Samples/ListSearchSample.cs         | 5104 ++++++++
 .../SellerListingLookupSample.cs                   |  366 +
 .../SellerListingSearchSample.cs                   |  365 +
 .../Amazon.ECS.Samples/SellerLookupSample.cs       |  255 +
 .../Amazon.ECS.Samples/SimilarityLookupSample.cs   | 5123 ++++++++
 .../Amazon.ECS.Samples/TagLookupSample.cs          | 5128 ++++++++
 .../Amazon.ECS.Samples/TransactionLookupSample.cs  |  401 +
 .../src/Amazon.ECS.sln                             |   33 +
 .../src/Amazon.ECS/Amazon.ECS.csproj               |  128 +
 .../src/Amazon.ECS/Amazon.ECS/AmazonECS.cs         |  866 ++
 .../src/Amazon.ECS/Amazon.ECS/AmazonECSConfig.cs   |  195 +
 .../Amazon.ECS/Amazon.ECS/AmazonECSException.cs    |  150 +
 .../src/Amazon.ECS/Amazon.ECS/AmazonECSLocale.cs   |  110 +
 .../Amazon.ECS/Amazon.ECS/Mock/AmazonECSMock.cs    |  895 ++
 .../Amazon.ECS/Mock/BrowseNodeLookupResponse.xml   |   72 +
 .../Amazon.ECS/Amazon.ECS/Mock/CartAddResponse.xml |  206 +
 .../Amazon.ECS/Mock/CartClearResponse.xml          |  206 +
 .../Amazon.ECS/Mock/CartCreateResponse.xml         |  206 +
 .../Amazon.ECS/Amazon.ECS/Mock/CartGetResponse.xml |  206 +
 .../Amazon.ECS/Mock/CartModifyResponse.xml         |  206 +
 .../Mock/CustomerContentLookupResponse.xml         | 2064 ++++
 .../Mock/CustomerContentSearchResponse.xml         | 2064 ++++
 .../Amazon.ECS/Amazon.ECS/Mock/HelpResponse.xml    |   67 +
 .../Amazon.ECS/Mock/ItemLookupResponse.xml         | 2079 ++++
 .../Amazon.ECS/Mock/ItemSearchResponse.xml         | 2079 ++++
 .../Amazon.ECS/Mock/ListLookupResponse.xml         | 2057 ++++
 .../Amazon.ECS/Mock/ListSearchResponse.xml         | 2057 ++++
 .../Mock/SellerListingLookupResponse.xml           |  128 +
 .../Mock/SellerListingSearchResponse.xml           |  128 +
 .../Amazon.ECS/Mock/SellerLookupResponse.xml       |   87 +
 .../Amazon.ECS/Mock/SimilarityLookupResponse.xml   | 2079 ++++
 .../Amazon.ECS/Mock/TagLookupResponse.xml          | 2059 ++++
 .../Amazon.ECS/Mock/TransactionLookupResponse.xml  |  129 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Accessories.cs |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Accessory.cs   |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Address.cs     |  434 +
 .../Amazon.ECS/Model/AlternateVersion.cs           |  219 +
 .../Amazon.ECS/Model/AlternateVersions.cs          |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Argument.cs    |  164 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Arguments.cs   |  143 +
 .../Amazon.ECS/Model/AvailabilityAttributes.cs     |  262 +
 .../Amazon.ECS/Model/AvailableParameters.cs        |  145 +
 .../Amazon.ECS/Model/AvailableResponseGroups.cs    |  145 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Bin.cs         |  229 +
 .../Amazon.ECS/Amazon.ECS/Model/BinParameter.cs    |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/BrowseNode.cs  |  439 +
 .../Amazon.ECS/Model/BrowseNodeAncestors.cs        |  143 +
 .../Amazon.ECS/Model/BrowseNodeChildren.cs         |  143 +
 .../Amazon.ECS/Model/BrowseNodeLookup.cs           |  115 +
 .../Amazon.ECS/Model/BrowseNodeLookupRequest.cs    |  200 +
 .../Amazon.ECS/Model/BrowseNodeLookupResponse.cs   |  184 +
 .../Amazon.ECS/Model/BrowseNodeProperties.cs       |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/BrowseNodes.cs |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Cart.cs        |  614 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartAdd.cs     |  164 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartAddItem.cs |  358 +
 .../Amazon.ECS/Amazon.ECS/Model/CartAddItems.cs    |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/CartAddRequest.cs  |  318 +
 .../Amazon.ECS/Amazon.ECS/Model/CartAddResponse.cs |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartClear.cs   |  122 +
 .../Amazon.ECS/Model/CartClearRequest.cs           |  274 +
 .../Amazon.ECS/Model/CartClearResponse.cs          |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartCreate.cs  |  156 +
 .../Amazon.ECS/Amazon.ECS/Model/CartCreateItem.cs  |  358 +
 .../Amazon.ECS/Amazon.ECS/Model/CartCreateItems.cs |  143 +
 .../Amazon.ECS/Model/CartCreateRequest.cs          |  232 +
 .../Amazon.ECS/Model/CartCreateResponse.cs         |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartGet.cs     |  122 +
 .../Amazon.ECS/Amazon.ECS/Model/CartGetRequest.cs  |  274 +
 .../Amazon.ECS/Amazon.ECS/Model/CartGetResponse.cs |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartItem.cs    |  695 ++
 .../Amazon.ECS/Model/CartItemMetaData.cs           |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartItems.cs   |  187 +
 .../src/Amazon.ECS/Amazon.ECS/Model/CartModify.cs  |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/CartModifyItem.cs  |  219 +
 .../Amazon.ECS/Amazon.ECS/Model/CartModifyItems.cs |  143 +
 .../Amazon.ECS/Model/CartModifyRequest.cs          |  318 +
 .../Amazon.ECS/Model/CartModifyResponse.cs         |  184 +
 .../Amazon.ECS/Model/ChildTransactionItems.cs      |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/CollectionItem.cs  |  176 +
 .../Amazon.ECS/Model/CollectionParent.cs           |  176 +
 .../Amazon.ECS/Model/CollectionSummary.cs          |  266 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Collections.cs |  143 +
 .../Amazon.ECS/Model/CollectionsCollection.cs      |  231 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Condition.cs   |   48 +
 .../Amazon.ECS/Amazon.ECS/Model/CorrectedQuery.cs  |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Creator.cs     |  165 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Customer.cs    |  403 +
 .../Amazon.ECS/Model/CustomerContentLookup.cs      |  130 +
 .../Model/CustomerContentLookupRequest.cs          |  360 +
 .../Model/CustomerContentLookupResponse.cs         |  184 +
 .../Amazon.ECS/Model/CustomerContentSearch.cs      |  122 +
 .../Model/CustomerContentSearchRequest.cs          |  274 +
 .../Model/CustomerContentSearchResponse.cs         |  184 +
 .../Amazon.ECS/Model/CustomerLocation.cs           |  262 +
 .../Amazon.ECS/Amazon.ECS/Model/CustomerReviews.cs |  272 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Customers.cs   |  229 +
 .../Amazon.ECS/Model/DecimalWithUnits.cs           |  165 +
 .../Amazon.ECS/Model/DefaultResponseGroups.cs      |  145 +
 .../Amazon.ECS/Amazon.ECS/Model/DeliveryMethod.cs  |   42 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Disc.cs        |  180 +
 .../Amazon.ECS/Amazon.ECS/Model/EditorialReview.cs |  219 +
 .../Amazon.ECS/Model/EditorialReviews.cs           |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Feedback.cs    |  262 +
 .../Amazon.ECS/Model/FeedbackDateRange.cs          |  180 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Guide.cs       |  133 +
 .../src/Amazon.ECS/Amazon.ECS/Model/HTTPHeaders.cs |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Header.cs      |  164 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Help.cs        |  118 +
 .../src/Amazon.ECS/Amazon.ECS/Model/HelpRequest.cs |  231 +
 .../Amazon.ECS/Amazon.ECS/Model/HelpResponse.cs    |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Image.cs       |  264 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ImageSet.cs    |  391 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ImageSets.cs   |  186 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Information.cs |  196 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Item.cs        | 1239 ++
 .../Amazon.ECS/Amazon.ECS/Model/ItemAttributes.cs  |12853 ++++++++++++++++++++
 .../Amazon.ECS/Amazon.ECS/Model/ItemDimensions.cs  |  266 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ItemLookup.cs  |  175 +
 .../Amazon.ECS/Model/ItemLookupRequest.cs          |  845 ++
 .../Amazon.ECS/Model/ItemLookupResponse.cs         |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ItemSearch.cs  |  267 +
 .../Amazon.ECS/Model/ItemSearchRequest.cs          | 1834 +++
 .../Amazon.ECS/Model/ItemSearchResponse.cs         |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Items.cs       |  403 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Language.cs    |  219 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Languages.cs   |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/List.cs        |  866 ++
 .../src/Amazon.ECS/Amazon.ECS/Model/ListItem.cs    |  349 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ListLookup.cs  |  150 +
 .../Amazon.ECS/Model/ListLookupRequest.cs          |  575 +
 .../Amazon.ECS/Model/ListLookupResponse.cs         |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/ListSearch.cs  |  142 +
 .../Amazon.ECS/Model/ListSearchRequest.cs          |  489 +
 .../Amazon.ECS/Model/ListSearchResponse.cs         |  184 +
 .../Amazon.ECS/Amazon.ECS/Model/ListmaniaList.cs   |  176 +
 .../Amazon.ECS/Amazon.ECS/Model/ListmaniaLists.cs  |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Lists.cs       |  229 +
 .../Amazon.ECS/Amazon.ECS/Model/LoyaltyPoints.cs   |  177 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Merchant.cs    |  348 +
 .../Amazon.ECS/Model/MerchantItemAttributes.cs     |10861 +++++++++++++++++
 .../src/Amazon.ECS/Amazon.ECS/Model/MetaData.cs    |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/NewRelease.cs  |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/NewReleases.cs |  143 +
 .../Model/NonNegativeIntegerWithUnits.cs           |  165 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Offer.cs       |  363 +
 .../Amazon.ECS/Amazon.ECS/Model/OfferAttributes.cs |  305 +
 .../Amazon.ECS/Amazon.ECS/Model/OfferListing.cs    |  707 ++
 .../Amazon.ECS/Amazon.ECS/Model/OfferSummary.cs    |  438 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Offers.cs      |  229 +
 .../Amazon.ECS/Model/OperationInformation.cs       |  352 +
 .../Amazon.ECS/Model/OperationRequest.cs           |  264 +
 .../Model/OtherCategoriesSimilarProduct.cs         |  176 +
 .../Model/OtherCategoriesSimilarProducts.cs        |  143 +
 .../Amazon.ECS/Model/PackageDimensions.cs          |  266 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Price.cs       |  219 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Promotion.cs   |  178 +
 .../Amazon.ECS/Model/PromotionBenefit.cs           |  350 +
 .../Amazon.ECS/Model/PromotionBenefits.cs          |  143 +
 .../Amazon.ECS/Model/PromotionDetails.cs           |  695 ++
 .../Model/PromotionEligibilityRequirement.cs       |  220 +
 .../Model/PromotionEligibilityRequirements.cs      |  143 +
 .../Amazon.ECS/Model/PromotionItemApplicability.cs |  219 +
 .../Amazon.ECS/Model/PromotionSummary.cs           |  391 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Promotions.cs  |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Property.cs    |  176 +
 .../Amazon.ECS/Model/RequiredParameters.cs         |  145 +
 .../Amazon.ECS/Model/ResponseGroupElements.cs      |  145 +
 .../Amazon.ECS/Model/ResponseGroupInformation.cs   |  264 +
 .../Model/ResponseGroupValidOperations.cs          |  145 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Review.cs      |  478 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Reviewer.cs    |  262 +
 .../Amazon.ECS/Model/SavedForLaterItems.cs         |  187 +
 .../Amazon.ECS/Amazon.ECS/Model/SearchBinSet.cs    |  180 +
 .../Amazon.ECS/Amazon.ECS/Model/SearchBinSets.cs   |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/SearchInside.cs    |  177 +
 .../Amazon.ECS/Model/SearchInsideExcerpt.cs        |  305 +
 .../Amazon.ECS/Model/SearchResultsMap.cs           |  143 +
 .../Model/SearchResultsMapSearchIndex.cs           |  361 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Seller.cs      |  652 +
 .../Amazon.ECS/Amazon.ECS/Model/SellerFeedback.cs  |  143 +
 .../Amazon.ECS/Model/SellerFeedbackRating.cs       |  213 +
 .../Amazon.ECS/Model/SellerFeedbackSummary.cs      |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/SellerListing.cs   |  823 ++
 .../Amazon.ECS/Model/SellerListingLookup.cs        |  122 +
 .../Amazon.ECS/Model/SellerListingLookupRequest.cs |  274 +
 .../Model/SellerListingLookupResponse.cs           |  184 +
 .../Amazon.ECS/Model/SellerListingSearch.cs        |  134 +
 .../Amazon.ECS/Model/SellerListingSearchRequest.cs |  403 +
 .../Model/SellerListingSearchResponse.cs           |  184 +
 .../Amazon.ECS/Amazon.ECS/Model/SellerListings.cs  |  229 +
 .../Amazon.ECS/Amazon.ECS/Model/SellerLocation.cs  |  262 +
 .../Amazon.ECS/Amazon.ECS/Model/SellerLookup.cs    |  119 +
 .../Amazon.ECS/Model/SellerLookupRequest.cs        |  243 +
 .../Amazon.ECS/Model/SellerLookupResponse.cs       |  184 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Sellers.cs     |  229 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Shipment.cs    |  264 +
 .../Amazon.ECS/Amazon.ECS/Model/ShipmentItems.cs   |  145 +
 .../Amazon.ECS/Amazon.ECS/Model/ShipmentPackage.cs |  176 +
 .../Amazon.ECS/Model/ShipmentPackages.cs           |  143 +
 .../Amazon.ECS/Amazon.ECS/Model/ShippingCharge.cs  |  177 +
 .../Amazon.ECS/Amazon.ECS/Model/SimilarProduct.cs  |  176 +
 .../Amazon.ECS/Amazon.ECS/Model/SimilarProducts.cs |  143 +
 .../Amazon.ECS/Model/SimilarViewedProduct.cs       |  176 +
 .../Amazon.ECS/Model/SimilarViewedProducts.cs      |  143 +
 .../Amazon.ECS/Model/SimilarityLookup.cs           |  139 +
 .../Amazon.ECS/Model/SimilarityLookupRequest.cs    |  458 +
 .../Amazon.ECS/Model/SimilarityLookupResponse.cs   |  184 +
 .../Amazon.ECS/Amazon.ECS/Model/StringWithUnits.cs |  165 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Subjects.cs    |  145 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Tag.cs         |  499 +
 .../src/Amazon.ECS/Amazon.ECS/Model/TagLookup.cs   |  131 +
 .../Amazon.ECS/Model/TagLookupRequest.cs           |  372 +
 .../Amazon.ECS/Model/TagLookupResponse.cs          |  184 +
 .../Amazon.ECS/Amazon.ECS/Model/TaggedGuides.cs    |  308 +
 .../src/Amazon.ECS/Amazon.ECS/Model/TaggedItems.cs |  308 +
 .../Amazon.ECS/Model/TaggedListmaniaLists.cs       |  134 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Tagging.cs     |  262 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Tags.cs        |  403 +
 .../src/Amazon.ECS/Amazon.ECS/Model/TopSeller.cs   |  176 +
 .../src/Amazon.ECS/Amazon.ECS/Model/TopSellers.cs  |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Track.cs       |  165 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Tracks.cs      |  143 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Transaction.cs |  566 +
 .../Amazon.ECS/Amazon.ECS/Model/TransactionItem.cs |  351 +
 .../Amazon.ECS/Model/TransactionItems.cs           |  143 +
 .../Amazon.ECS/Model/TransactionLookup.cs          |  115 +
 .../Amazon.ECS/Model/TransactionLookupRequest.cs   |  200 +
 .../Amazon.ECS/Model/TransactionLookupResponse.cs  |  184 +
 .../Amazon.ECS/Model/TransactionShipments.cs       |  143 +
 .../Amazon.ECS/Model/TransactionTotals.cs          |  310 +
 .../Amazon.ECS/Amazon.ECS/Model/Transactions.cs    |  229 +
 .../Amazon.ECS/Model/VariationDimensions.cs        |  145 +
 .../Amazon.ECS/Model/VariationSummary.cs           |  309 +
 .../src/Amazon.ECS/Amazon.ECS/Model/Variations.cs  |  273 +
 .../Amazon.ECS/Amazon.ECS/Model/VendorRebate.cs    |  219 +
 .../Amazon.ECS/Amazon.ECS/Query/AmazonECSQuery.cs  | 1117 ++
 .../src/Amazon.ECS/Properties/AssemblyInfo.cs      |   11 +
 253 files changed, 141843 insertions(+), 0 deletions(-)

diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/ReadMe.html b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/ReadMe.html
new file mode 100644
index 0000000..7439dce
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/ReadMe.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+    <head>
+        
+        <title>AmazonECS CSharp Library</title>
+        <style type="text/css">
+            body, div, p, td, th {
+            font-family : helvetica,sans-serif, arial;
+            font-size : 12px;
+            color : #000000;
+            }
+            
+            .aws-h1, h1{
+            font-family: verdana, arial, helvetica, sans-serif;
+            font-size: 18px;
+            font-weight: bold;
+            color: #000000;
+            }
+            .aws-h2, h2{
+            font-family: verdana, arial, helvetica, sans-serif;
+            font-size: 14px;
+            color: #c60;
+            }
+            .aws-h3, h3{
+            font-family: verdana, arial, helvetica, sans-serif;
+            font-size: 12px;
+            font-weight: bold;
+            color: #333333;
+            }
+            
+            /*table ID selector styles*/
+            #aws-table {
+            border-top: 1px solid #cccccc;
+            border-left: 1px solid #cccccc;
+            width:95%;
+            }
+            
+            #aws-table td{
+            font-size: 12px;
+            padding: 5px 5px 5px 5px;
+            border-bottom: 1px solid #cccccc;
+            border-right: 1px solid #cccccc;
+            vertical-align:top;
+            }
+            
+            #aws-table th {
+            font-size: 12px;
+            padding: 5px 5px 5px 5px;
+            border-bottom: 1px solid #cccccc;
+            border-right: 1px solid #cccccc;
+            vertical-align:top;
+            background-color: #eeeeee;
+            color: #333333;
+            font-size: 12px;
+            font-weight: bold;
+            text-align: left;
+            }
+            
+            /*code, note, and example styles*/
+            pre {
+            font-family: "Courier New", Courier, mono;
+            font-size: 12px;
+            margin-top: 5px;
+            margin-bottom: 5px;
+            color: #000066;
+            padding: 5px;
+            background-color: #eff7ff;
+            border: 1px dashed #333;
+            width:75%;
+            display:block;
+            }
+
+            }
+        </style>
+    </head>
+    <body>
+        <h2>About this Library</h2>
+            <ul><li>Based on the 2007-07-16 API version.</li></ul>
+
+        <h2>Prerequisites</h2>
+        
+        <ul>
+            <li>Amazon Web Services Account (<a href="http://aws.amazon.com/";>http://aws.amazon.com/</a>).</li>
+            <li>Visual Studio 2005 Express, .NET 2.0</li>
+        </ul>
+        
+        <h2>Package Content</h2>
+        
+        <table id="aws-table">
+            
+            <tbody>
+                <tr>
+                    <th>Directory</th>
+                    <th>Overview</th>
+                </tr>
+                <tr>
+                    <td>doc</td>
+                    <td>Shortcut to <a href="http://s3.amazonaws.com/awscode/amazon-ecs/2007-07-16/cs/library/doc/index.htm";>Online Library Reference Documentation</a>.</td>
+                </tr>
+                
+                <tr>
+                    <td>
+                        src
+                    </td>
+                    <td>
+                        Source distribution of the library. All sources including code samples that demonstrate the use of the library located under this directory. 
+                    </td>
+                </tr>
+            </tbody>
+            
+        </table>
+        
+        
+        <h2>Quick Start</h2>
+        
+        Library comes with C# solution and two pre-configured C# projects. 
+		<ul>
+		<li><strong>Amazon.ECS.csproj</strong> - main library project</li>
+		<li><strong>Amazon.ECS.Samples.csproj</strong> - library samples project</li>
+		</ul>
+		
+        To get started with the library, follow these steps:
+        <ol>
+            <li>Extract the <strong>amazon-ecs-2007-07-16-cs-library.zip</strong> file into a working directory.</li>
+            <li>Open Amazon.ECS.sln solution file in Visual Studio 2005</li>
+            <li>Hit F5 key and follow on screen instruction</li>
+
+		</ol>
+        <h2>Running Samples</h2>
+		    Steps to run particular sample     
+            <ul>
+				<li><strong>Open AmazonECSSamples.cs</strong> file under Amazon.ECS.Samples project</li>
+                <li>Set AWS Access Key ID and Associate Tag</li>
+                <pre>
+String accessKeyId = "Your Access Key ID";
+String associateTag = "Your Associate Tag";
+                </pre>
+            </ul>
+            <br/>
+            <br/>
+            <ul>
+                <li>Set request parameters. For example, find following pre-generated snippet:</li>
+                <pre>
+// ItemSearchRequest request = new ItemSearchRequest();
+// @TODO: set request parameters here
+// ItemSearchSample.InvokeItemSearch(service, request);
+                </pre>
+            </ul>
+            <br/>
+            <br/>
+            <ul>
+                <li>Add desired request parameters in place of @TODO, and uncomment third line, so snippet looks like this:</li>
+                
+                <pre>
+   ItemSearchRequest request = new ItemSearchRequest();
+   request.SearchIndex = "Books";
+   request.KeyWords = "XML";
+   ItemSearchSample.InvokeItemSearch(service, request);
+                </pre>
+                
+                <br/>
+                Note, you can also utilize <span style="font-weight: bold;color:#cc0033">Fluent API feature</span> of the library. Following is an equivalent of the above:
+                <br/>
+                <pre>
+   ItemSearchRequest request = new ItemSearchRequest();
+   ItemSearchSample.InvokeItemSearch(service, request.<span style="font-weight: bold;color:#cc0033;">WithSearchIndex</span>("Books").<span style="font-weight: bold;color:#cc0033;">WithKeywords</span>("XML"));
+                </pre>
+                
+
+            <br/>
+            <li>Hit F5 to run sample. You should see the output 
+            similar to the following:</li>
+            <br/>
+            <br/>
+            <pre>
+    ItemSearchResponse
+        OperationRequest
+            RequestId
+                1NPYXWT8DMZMT5DWDDPR
+        Items
+            TotalResults
+                1665
+            TotalPages
+                167
+            Item
+                ASIN
+                    0321430840
+                ItemAttributes
+                    Author
+                        Elizabeth Castro                    
+                    ProductGroup
+                        Book
+                    Title
+                        HTML, XHTML, and CSS, Sixth Edition (Visual Quickstart Guide)
+    ...
+            </pre>
+			<br/>
+            <br/>
+            <li>Experiment with other samples, examine samples sources. When ready, add library project to your solution, and use it. <p/><strong>Happy coding!</strong></li>
+
+            </ul>
+        
+        <h2>Comments, Questions or Feedback</h2>
+        
+        If you have any comments, questions or feedback on the library, please visit the <a href="http://developer.amazonwebservices.com/connect/forum.jspa?forumID=9";>Amazon E-Commerce Service discussion forums</a>.
+        
+        
+    </body>
+</html>
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples.csproj b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples.csproj
new file mode 100644
index 0000000..ffb0381
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples.csproj
@@ -0,0 +1,53 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Amazon.ECS.Samples</RootNamespace>
+    <AssemblyName>Amazon.ECS.Samples</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Web" />
+  </ItemGroup>
+  <ItemGroup>
+     <Compile Include="Amazon.ECS.Samples\*.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Amazon.ECS\Amazon.ECS.csproj">
+      <Project>{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}</Project>
+      <Name>Amazon.ECS</Name>
+    </ProjectReference>
+  </ItemGroup>
+
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/AmazonECSSamples.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/AmazonECSSamples.cs
new file mode 100644
index 0000000..82074fd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/AmazonECSSamples.cs
@@ -0,0 +1,285 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Query;
+using Amazon.ECS.Mock;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Amazon ECS  Samples
+    /// </summary>
+    public class AmazonECSSamples 
+    {
+    
+       /**
+        * Samples for Amazon ECS functionality
+        */
+        public static void Main(string [] args) 
+        {
+            Console.WriteLine("===========================================");
+            Console.WriteLine("Welcome to Amazon ECS Samples!");
+            Console.WriteLine("===========================================");
+
+            Console.WriteLine("To get started:");
+            Console.WriteLine("===========================================");
+            Console.WriteLine("  - Fill in your AWS Access Key ID");
+            Console.WriteLine("  - Uncomment sample you're interested in trying");
+            Console.WriteLine("  - Set request with desired parameters");
+            Console.WriteLine("  - Hit F5 to run!");
+            Console.WriteLine();
+
+            Console.WriteLine("===========================================");
+            Console.WriteLine("Samples Output");
+            Console.WriteLine("===========================================");
+            Console.WriteLine();
+
+           /************************************************************************
+            * Access Key ID obtained from:
+            * http://aws.amazon.com
+            ***********************************************************************/
+            String accessKeyId = "<Your Access Key ID>";
+            String associateTag = "<Your Associate Tag>";
+        
+            /************************************************************************
+            * Instantiate Query Implementation of Amazon ECS 
+            ***********************************************************************/
+            AmazonECS service = new AmazonECSQuery(accessKeyId, associateTag);
+            /************************************************************************
+             * Uncomment to invoke library on different Locale. Available Locales:
+             * 
+             *  - US
+             *  - UK
+             *  - FR
+             *  - JP
+             *  - CA
+             *  - DE
+             *
+             * To override any of the locale specific configuration, preconfigure
+             * locale before passing it to the service constructor:
+             *
+             * AmazonECSLocale locale = AmazonECSLocale.DE;
+             * locale.Config.ServiceURL = "http://localeurl";;
+             * AmazonECS service = new AmazonECSQuery(accessKeyId, associateTag, locale);
+             *
+             ***********************************************************************/
+            // AmazonECS service = new AmazonECSQuery(accessKeyId, associateTag, AmazonECSLocale.US);
+        
+           /************************************************************************
+            * Uncomment to try out Mock Service that simulates Amazon ECS 
+            * responses without calling Amazon ECS  service.
+            *
+            * Responses are loaded from local XML files. You can tweak XML files to
+            * experiment with various outputs during development
+            *
+            * XML files available under Amazon/ECS/mock tree
+            *
+            ***********************************************************************/
+            // AmazonECS service = new AmazonECSMock();
+
+
+            /************************************************************************
+            * Help  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // HelpRequest request = new HelpRequest();
+            // @TODO: set request parameters here
+            // HelpSample.InvokeHelp(service, request);
+
+            /************************************************************************
+            * Item Search  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // ItemSearchRequest request = new ItemSearchRequest();
+            // @TODO: set request parameters here
+            // ItemSearchSample.InvokeItemSearch(service, request);
+
+            /************************************************************************
+            * Item Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // ItemLookupRequest request = new ItemLookupRequest();
+            // @TODO: set request parameters here
+            // ItemLookupSample.InvokeItemLookup(service, request);
+
+            /************************************************************************
+            * Browse Node Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // BrowseNodeLookupRequest request = new BrowseNodeLookupRequest();
+            // @TODO: set request parameters here
+            // BrowseNodeLookupSample.InvokeBrowseNodeLookup(service, request);
+
+            /************************************************************************
+            * List Search  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // ListSearchRequest request = new ListSearchRequest();
+            // @TODO: set request parameters here
+            // ListSearchSample.InvokeListSearch(service, request);
+
+            /************************************************************************
+            * List Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // ListLookupRequest request = new ListLookupRequest();
+            // @TODO: set request parameters here
+            // ListLookupSample.InvokeListLookup(service, request);
+
+            /************************************************************************
+            * Customer Content Search  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CustomerContentSearchRequest request = new CustomerContentSearchRequest();
+            // @TODO: set request parameters here
+            // CustomerContentSearchSample.InvokeCustomerContentSearch(service, request);
+
+            /************************************************************************
+            * Customer Content Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CustomerContentLookupRequest request = new CustomerContentLookupRequest();
+            // @TODO: set request parameters here
+            // CustomerContentLookupSample.InvokeCustomerContentLookup(service, request);
+
+            /************************************************************************
+            * Similarity Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // SimilarityLookupRequest request = new SimilarityLookupRequest();
+            // @TODO: set request parameters here
+            // SimilarityLookupSample.InvokeSimilarityLookup(service, request);
+
+            /************************************************************************
+            * Seller Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // SellerLookupRequest request = new SellerLookupRequest();
+            // @TODO: set request parameters here
+            // SellerLookupSample.InvokeSellerLookup(service, request);
+
+            /************************************************************************
+            * Cart Get  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CartGetRequest request = new CartGetRequest();
+            // @TODO: set request parameters here
+            // CartGetSample.InvokeCartGet(service, request);
+
+            /************************************************************************
+            * Cart Add  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CartAddRequest request = new CartAddRequest();
+            // @TODO: set request parameters here
+            // CartAddSample.InvokeCartAdd(service, request);
+
+            /************************************************************************
+            * Cart Create  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CartCreateRequest request = new CartCreateRequest();
+            // @TODO: set request parameters here
+            // CartCreateSample.InvokeCartCreate(service, request);
+
+            /************************************************************************
+            * Cart Modify  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CartModifyRequest request = new CartModifyRequest();
+            // @TODO: set request parameters here
+            // CartModifySample.InvokeCartModify(service, request);
+
+            /************************************************************************
+            * Cart Clear  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // CartClearRequest request = new CartClearRequest();
+            // @TODO: set request parameters here
+            // CartClearSample.InvokeCartClear(service, request);
+
+            /************************************************************************
+            * Transaction Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // TransactionLookupRequest request = new TransactionLookupRequest();
+            // @TODO: set request parameters here
+            // TransactionLookupSample.InvokeTransactionLookup(service, request);
+
+            /************************************************************************
+            * Seller Listing Search  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // SellerListingSearchRequest request = new SellerListingSearchRequest();
+            // @TODO: set request parameters here
+            // SellerListingSearchSample.InvokeSellerListingSearch(service, request);
+
+            /************************************************************************
+            * Seller Listing Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // SellerListingLookupRequest request = new SellerListingLookupRequest();
+            // @TODO: set request parameters here
+            // SellerListingLookupSample.InvokeSellerListingLookup(service, request);
+
+            /************************************************************************
+            * Tag Lookup  Sample
+            *
+            * Setup request parameters and uncomment to try out sample 
+            ***********************************************************************/
+            // TagLookupRequest request = new TagLookupRequest();
+            // @TODO: set request parameters here
+            // TagLookupSample.InvokeTagLookup(service, request);
+
+            Console.WriteLine();
+            Console.WriteLine("===========================================");
+            Console.WriteLine("End of output. You can close this window");
+            Console.WriteLine("===========================================");
+
+            System.Threading.Thread.Sleep(50000);
+        }
+
+    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/BrowseNodeLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/BrowseNodeLookupSample.cs
new file mode 100644
index 0000000..ffdd5f2
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/BrowseNodeLookupSample.cs
@@ -0,0 +1,212 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Browse Node Lookup  Samples
+    /// </summary>
+    public class BrowseNodeLookupSample
+    {
+    
+                                     
+        /// <summary>
+        /// 
+        /// <p/>
+        /// Given a browse node ID, BrowseNodeLookup returns the specified browse node's name, children, and ancestors.
+        /// The names and browse node IDs of the children and ancestor browse nodes are also returned.
+        /// BrowseNodeLookup enables you to traverse the browse node hierarchy to find a browse node.
+        /// As you traverse down the hierarchy, you refine your search and limit the number of items returned.
+        /// For example, you might traverse the following hierarchy: DVD Used DVDs Kids and Family,
+        /// to select out of all the DVDs offered by Amazon only those that are appropriate for family viewing.
+        /// Returning the items associated with Kids and Family produces a much more targeted result than a search
+        /// based at the level of Used DVDs.
+        /// <p/>
+        /// Alternatively, by traversing up the browse node tree, you can determine the root category of an item.
+        /// You might do that, for example, to return the top seller of the root product category using the
+        /// TopSeller response group in an ItemSearch request.
+        /// <p/>
+        /// You can use BrowseNodeLookup iteratively to navigate through the browse node hierarchy to
+        /// reach the node that most appropriately suits your search. Then you can use the browse node ID in
+        /// an ItemSearch request. This response would be far more targeted than, for example,
+        /// searching through all of the browse nodes in a search index.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>BrowseNodeInfo</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">BrowseNodeLookup request</param>
+        public static void InvokeBrowseNodeLookup(AmazonECS service, params BrowseNodeLookupRequest [] request) 
+        {
+            try 
+            {
+                BrowseNodeLookupResponse response = service.BrowseNodeLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        BrowseNodeLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<BrowseNodes> browseNodesList = response.BrowseNodes;
+                foreach (BrowseNodes browseNodes in browseNodesList) 
+                {
+                    Console.WriteLine("            BrowseNodes");
+                    List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                    foreach (BrowseNode browseNode in browseNodeList) 
+                    {
+                        Console.WriteLine("                BrowseNode");
+                        if (browseNode.IsSetBrowseNodeId()) 
+                        {
+                            Console.WriteLine("                    BrowseNodeId");
+                            Console.WriteLine("                        {0}", browseNode.BrowseNodeId);
+                        }
+                        if (browseNode.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", browseNode.Name);
+                        }
+                        if (browseNode.IsSetIsCategoryRoot()) 
+                        {
+                            Console.WriteLine("                    IsCategoryRoot");
+                            Console.WriteLine("                        {0}", browseNode.IsCategoryRoot);
+                        }
+                        if (browseNode.IsSetProperties()) 
+                        {
+                            Console.WriteLine("                    Properties");
+                            BrowseNodeProperties  properties = browseNode.Properties;
+                            List<Property> propertyList = properties.Property;
+                            foreach (Property property in propertyList) 
+                            {
+                                Console.WriteLine("                        Property");
+                                if (property.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", property.Name);
+                                }
+                                if (property.IsSetValue()) 
+                                {
+                                    Console.WriteLine("                            Value");
+                                    Console.WriteLine("                                {0}", property.Value);
+                                }
+                            }
+                        } 
+                        if (browseNode.IsSetChildren()) 
+                        {
+                            Console.WriteLine("                    Children");
+                            BrowseNodeChildren  children = browseNode.Children;
+                        } 
+                        if (browseNode.IsSetAncestors()) 
+                        {
+                            Console.WriteLine("                    Ancestors");
+                            BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                        } 
+                        if (browseNode.IsSetTopSellers()) 
+                        {
+                            Console.WriteLine("                    TopSellers");
+                            TopSellers  topSellers = browseNode.TopSellers;
+                            List<TopSeller> topSellerList = topSellers.TopSeller;
+                            foreach (TopSeller topSeller in topSellerList) 
+                            {
+                                Console.WriteLine("                        TopSeller");
+                                if (topSeller.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", topSeller.ASIN);
+                                }
+                                if (topSeller.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", topSeller.Title);
+                                }
+                            }
+                        } 
+                        if (browseNode.IsSetNewReleases()) 
+                        {
+                            Console.WriteLine("                    NewReleases");
+                            NewReleases  newReleases = browseNode.NewReleases;
+                            List<NewRelease> newReleaseList = newReleases.NewRelease;
+                            foreach (NewRelease newRelease in newReleaseList) 
+                            {
+                                Console.WriteLine("                        NewRelease");
+                                if (newRelease.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", newRelease.ASIN);
+                                }
+                                if (newRelease.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", newRelease.Title);
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                                    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartAddSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartAddSample.cs
new file mode 100644
index 0000000..371d132
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartAddSample.cs
@@ -0,0 +1,552 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Cart Add  Samples
+    /// </summary>
+    public class CartAddSample
+    {
+    
+                                                                     
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The CartAdd operation enables you to add items to an existing remote shopping cart.
+        /// CartAdd can only be used to place a new item in a shopping cart. It cannot be used to increase
+        /// the quantity of an item already in the cart. If you would like to increase the quantity of
+        /// an item that is already in the cart, you must use the CartModify operation.
+        /// <p/>
+        /// You add an item to a cart by specifying the item's OfferListingId, or ASIN and ListItemId.
+        /// Once in a cart, an item can only be identified by its CartItemId. That is, an item in a cart
+        /// cannot be accessed by its ASIN or OfferListingId. CartItemId is returned by CartCreate, CartGet, and CartAdd.
+        /// <p/>
+        /// To add items to a cart, you must specify the cart using the CartId and HMAC values, which are
+        /// returned by the CartCreate operation.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartAdd requests must
+        /// also include a value for Associate Tag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CartAdd request</param>
+        public static void InvokeCartAdd(AmazonECS service, params CartAddRequest [] request) 
+        {
+            try 
+            {
+                CartAddResponse response = service.CartAdd(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CartAddResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Cart> cartList = response.Cart;
+                foreach (Cart cart in cartList) 
+                {
+                    Console.WriteLine("            Cart");
+                    if (cart.IsSetCartId()) 
+                    {
+                        Console.WriteLine("                CartId");
+                        Console.WriteLine("                    {0}", cart.CartId);
+                    }
+                    if (cart.IsSetHMAC()) 
+                    {
+                        Console.WriteLine("                HMAC");
+                        Console.WriteLine("                    {0}", cart.HMAC);
+                    }
+                    if (cart.IsSetURLEncodedHMAC()) 
+                    {
+                        Console.WriteLine("                URLEncodedHMAC");
+                        Console.WriteLine("                    {0}", cart.URLEncodedHMAC);
+                    }
+                    if (cart.IsSetPurchaseURL()) 
+                    {
+                        Console.WriteLine("                PurchaseURL");
+                        Console.WriteLine("                    {0}", cart.PurchaseURL);
+                    }
+                    if (cart.IsSetSubTotal()) 
+                    {
+                        Console.WriteLine("                SubTotal");
+                        Price  subTotal = cart.SubTotal;
+                        if (subTotal.IsSetAmount()) 
+                        {
+                            Console.WriteLine("                    Amount");
+                            Console.WriteLine("                        {0}", subTotal.Amount);
+                        }
+                        if (subTotal.IsSetCurrencyCode()) 
+                        {
+                            Console.WriteLine("                    CurrencyCode");
+                            Console.WriteLine("                        {0}", subTotal.CurrencyCode);
+                        }
+                        if (subTotal.IsSetFormattedPrice()) 
+                        {
+                            Console.WriteLine("                    FormattedPrice");
+                            Console.WriteLine("                        {0}", subTotal.FormattedPrice);
+                        }
+                    } 
+                    if (cart.IsSetCartItems()) 
+                    {
+                        Console.WriteLine("                CartItems");
+                        CartItems  cartItems = cart.CartItems;
+                        if (cartItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = cartItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> cartItemList = cartItems.CartItem;
+                        foreach (CartItem cartItem in cartItemList) 
+                        {
+                            Console.WriteLine("                    CartItem");
+                            if (cartItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", cartItem.CartItemId);
+                            }
+                            if (cartItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", cartItem.ASIN);
+                            }
+                            if (cartItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", cartItem.ExchangeId);
+                            }
+                            if (cartItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", cartItem.MerchantId);
+                            }
+                            if (cartItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", cartItem.SellerId);
+                            }
+                            if (cartItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", cartItem.SellerNickname);
+                            }
+                            if (cartItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", cartItem.Quantity);
+                            }
+                            if (cartItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", cartItem.Title);
+                            }
+                            if (cartItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", cartItem.ProductGroup);
+                            }
+                            if (cartItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", cartItem.ListOwner);
+                            }
+                            if (cartItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", cartItem.ListType);
+                            }
+                            if (cartItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = cartItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (cartItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = cartItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (cartItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = cartItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSavedForLaterItems()) 
+                    {
+                        Console.WriteLine("                SavedForLaterItems");
+                        SavedForLaterItems  savedForLaterItems = cart.SavedForLaterItems;
+                        if (savedForLaterItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = savedForLaterItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> savedForLaterItemList = savedForLaterItems.SavedForLaterItem;
+                        foreach (CartItem savedForLaterItem in savedForLaterItemList) 
+                        {
+                            Console.WriteLine("                    SavedForLaterItem");
+                            if (savedForLaterItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.CartItemId);
+                            }
+                            if (savedForLaterItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ASIN);
+                            }
+                            if (savedForLaterItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ExchangeId);
+                            }
+                            if (savedForLaterItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.MerchantId);
+                            }
+                            if (savedForLaterItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerId);
+                            }
+                            if (savedForLaterItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerNickname);
+                            }
+                            if (savedForLaterItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Quantity);
+                            }
+                            if (savedForLaterItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Title);
+                            }
+                            if (savedForLaterItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ProductGroup);
+                            }
+                            if (savedForLaterItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListOwner);
+                            }
+                            if (savedForLaterItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListType);
+                            }
+                            if (savedForLaterItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = savedForLaterItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = savedForLaterItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = savedForLaterItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSimilarProducts()) 
+                    {
+                        Console.WriteLine("                SimilarProducts");
+                        SimilarProducts  similarProducts = cart.SimilarProducts;
+                        List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                        foreach (SimilarProduct similarProduct in similarProductList) 
+                        {
+                            Console.WriteLine("                    SimilarProduct");
+                            if (similarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarProduct.ASIN);
+                            }
+                            if (similarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetTopSellers()) 
+                    {
+                        Console.WriteLine("                TopSellers");
+                        TopSellers  topSellers = cart.TopSellers;
+                        List<TopSeller> topSellerList = topSellers.TopSeller;
+                        foreach (TopSeller topSeller in topSellerList) 
+                        {
+                            Console.WriteLine("                    TopSeller");
+                            if (topSeller.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", topSeller.ASIN);
+                            }
+                            if (topSeller.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", topSeller.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetNewReleases()) 
+                    {
+                        Console.WriteLine("                NewReleases");
+                        NewReleases  newReleases = cart.NewReleases;
+                        List<NewRelease> newReleaseList = newReleases.NewRelease;
+                        foreach (NewRelease newRelease in newReleaseList) 
+                        {
+                            Console.WriteLine("                    NewRelease");
+                            if (newRelease.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", newRelease.ASIN);
+                            }
+                            if (newRelease.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", newRelease.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetSimilarViewedProducts()) 
+                    {
+                        Console.WriteLine("                SimilarViewedProducts");
+                        SimilarViewedProducts  similarViewedProducts = cart.SimilarViewedProducts;
+                        List<SimilarViewedProduct> similarViewedProductList = similarViewedProducts.SimilarViewedProduct;
+                        foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) 
+                        {
+                            Console.WriteLine("                    SimilarViewedProduct");
+                            if (similarViewedProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarViewedProduct.ASIN);
+                            }
+                            if (similarViewedProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarViewedProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetOtherCategoriesSimilarProducts()) 
+                    {
+                        Console.WriteLine("                OtherCategoriesSimilarProducts");
+                        OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = cart.OtherCategoriesSimilarProducts;
+                        List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = otherCategoriesSimilarProducts.OtherCategoriesSimilarProduct;
+                        foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) 
+                        {
+                            Console.WriteLine("                    OtherCategoriesSimilarProduct");
+                            if (otherCategoriesSimilarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.ASIN);
+                            }
+                            if (otherCategoriesSimilarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.Title);
+                            }
+                        }
+                    } 
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartClearSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartClearSample.cs
new file mode 100644
index 0000000..5042571
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartClearSample.cs
@@ -0,0 +1,552 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Cart Clear  Samples
+    /// </summary>
+    public class CartClearSample
+    {
+    
+                                                                                 
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The CartClear operation enables you to remove all of the items in a remote shopping cart, including
+        /// SavedForLater items. To remove only some of the items in a cart or to reduce the quantity
+        /// of one or more items, use  CartModify  .
+        /// <p/>
+        /// To delete all of the items from a remote shopping cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned by the CartCreate operation. A value similar
+        /// to the HMAC, URLEncodedHMAC, is also returned. This value is the URL encoded version
+        /// of the HMAC. This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself, use the
+        /// URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartClear does not work after the customer has used the PurchaseURL to either purchase the
+        /// items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// Carts exist even though they have been emptied. The lifespan of a cart is 7 days since the
+        /// last time it was acted upon. For example, if a cart created 6 days ago is modified,
+        /// the cart lifespan is reset to 7 days.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CartClear request</param>
+        public static void InvokeCartClear(AmazonECS service, params CartClearRequest [] request) 
+        {
+            try 
+            {
+                CartClearResponse response = service.CartClear(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CartClearResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Cart> cartList = response.Cart;
+                foreach (Cart cart in cartList) 
+                {
+                    Console.WriteLine("            Cart");
+                    if (cart.IsSetCartId()) 
+                    {
+                        Console.WriteLine("                CartId");
+                        Console.WriteLine("                    {0}", cart.CartId);
+                    }
+                    if (cart.IsSetHMAC()) 
+                    {
+                        Console.WriteLine("                HMAC");
+                        Console.WriteLine("                    {0}", cart.HMAC);
+                    }
+                    if (cart.IsSetURLEncodedHMAC()) 
+                    {
+                        Console.WriteLine("                URLEncodedHMAC");
+                        Console.WriteLine("                    {0}", cart.URLEncodedHMAC);
+                    }
+                    if (cart.IsSetPurchaseURL()) 
+                    {
+                        Console.WriteLine("                PurchaseURL");
+                        Console.WriteLine("                    {0}", cart.PurchaseURL);
+                    }
+                    if (cart.IsSetSubTotal()) 
+                    {
+                        Console.WriteLine("                SubTotal");
+                        Price  subTotal = cart.SubTotal;
+                        if (subTotal.IsSetAmount()) 
+                        {
+                            Console.WriteLine("                    Amount");
+                            Console.WriteLine("                        {0}", subTotal.Amount);
+                        }
+                        if (subTotal.IsSetCurrencyCode()) 
+                        {
+                            Console.WriteLine("                    CurrencyCode");
+                            Console.WriteLine("                        {0}", subTotal.CurrencyCode);
+                        }
+                        if (subTotal.IsSetFormattedPrice()) 
+                        {
+                            Console.WriteLine("                    FormattedPrice");
+                            Console.WriteLine("                        {0}", subTotal.FormattedPrice);
+                        }
+                    } 
+                    if (cart.IsSetCartItems()) 
+                    {
+                        Console.WriteLine("                CartItems");
+                        CartItems  cartItems = cart.CartItems;
+                        if (cartItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = cartItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> cartItemList = cartItems.CartItem;
+                        foreach (CartItem cartItem in cartItemList) 
+                        {
+                            Console.WriteLine("                    CartItem");
+                            if (cartItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", cartItem.CartItemId);
+                            }
+                            if (cartItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", cartItem.ASIN);
+                            }
+                            if (cartItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", cartItem.ExchangeId);
+                            }
+                            if (cartItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", cartItem.MerchantId);
+                            }
+                            if (cartItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", cartItem.SellerId);
+                            }
+                            if (cartItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", cartItem.SellerNickname);
+                            }
+                            if (cartItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", cartItem.Quantity);
+                            }
+                            if (cartItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", cartItem.Title);
+                            }
+                            if (cartItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", cartItem.ProductGroup);
+                            }
+                            if (cartItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", cartItem.ListOwner);
+                            }
+                            if (cartItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", cartItem.ListType);
+                            }
+                            if (cartItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = cartItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (cartItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = cartItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (cartItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = cartItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSavedForLaterItems()) 
+                    {
+                        Console.WriteLine("                SavedForLaterItems");
+                        SavedForLaterItems  savedForLaterItems = cart.SavedForLaterItems;
+                        if (savedForLaterItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = savedForLaterItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> savedForLaterItemList = savedForLaterItems.SavedForLaterItem;
+                        foreach (CartItem savedForLaterItem in savedForLaterItemList) 
+                        {
+                            Console.WriteLine("                    SavedForLaterItem");
+                            if (savedForLaterItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.CartItemId);
+                            }
+                            if (savedForLaterItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ASIN);
+                            }
+                            if (savedForLaterItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ExchangeId);
+                            }
+                            if (savedForLaterItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.MerchantId);
+                            }
+                            if (savedForLaterItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerId);
+                            }
+                            if (savedForLaterItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerNickname);
+                            }
+                            if (savedForLaterItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Quantity);
+                            }
+                            if (savedForLaterItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Title);
+                            }
+                            if (savedForLaterItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ProductGroup);
+                            }
+                            if (savedForLaterItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListOwner);
+                            }
+                            if (savedForLaterItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListType);
+                            }
+                            if (savedForLaterItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = savedForLaterItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = savedForLaterItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = savedForLaterItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSimilarProducts()) 
+                    {
+                        Console.WriteLine("                SimilarProducts");
+                        SimilarProducts  similarProducts = cart.SimilarProducts;
+                        List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                        foreach (SimilarProduct similarProduct in similarProductList) 
+                        {
+                            Console.WriteLine("                    SimilarProduct");
+                            if (similarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarProduct.ASIN);
+                            }
+                            if (similarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetTopSellers()) 
+                    {
+                        Console.WriteLine("                TopSellers");
+                        TopSellers  topSellers = cart.TopSellers;
+                        List<TopSeller> topSellerList = topSellers.TopSeller;
+                        foreach (TopSeller topSeller in topSellerList) 
+                        {
+                            Console.WriteLine("                    TopSeller");
+                            if (topSeller.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", topSeller.ASIN);
+                            }
+                            if (topSeller.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", topSeller.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetNewReleases()) 
+                    {
+                        Console.WriteLine("                NewReleases");
+                        NewReleases  newReleases = cart.NewReleases;
+                        List<NewRelease> newReleaseList = newReleases.NewRelease;
+                        foreach (NewRelease newRelease in newReleaseList) 
+                        {
+                            Console.WriteLine("                    NewRelease");
+                            if (newRelease.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", newRelease.ASIN);
+                            }
+                            if (newRelease.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", newRelease.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetSimilarViewedProducts()) 
+                    {
+                        Console.WriteLine("                SimilarViewedProducts");
+                        SimilarViewedProducts  similarViewedProducts = cart.SimilarViewedProducts;
+                        List<SimilarViewedProduct> similarViewedProductList = similarViewedProducts.SimilarViewedProduct;
+                        foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) 
+                        {
+                            Console.WriteLine("                    SimilarViewedProduct");
+                            if (similarViewedProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarViewedProduct.ASIN);
+                            }
+                            if (similarViewedProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarViewedProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetOtherCategoriesSimilarProducts()) 
+                    {
+                        Console.WriteLine("                OtherCategoriesSimilarProducts");
+                        OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = cart.OtherCategoriesSimilarProducts;
+                        List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = otherCategoriesSimilarProducts.OtherCategoriesSimilarProduct;
+                        foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) 
+                        {
+                            Console.WriteLine("                    OtherCategoriesSimilarProduct");
+                            if (otherCategoriesSimilarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.ASIN);
+                            }
+                            if (otherCategoriesSimilarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.Title);
+                            }
+                        }
+                    } 
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                        }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartCreateSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartCreateSample.cs
new file mode 100644
index 0000000..caeed5c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartCreateSample.cs
@@ -0,0 +1,576 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Cart Create  Samples
+    /// </summary>
+    public class CartCreateSample
+    {
+    
+                                                                         
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The CartCreate operation enables you to create a remote shopping cart.
+        /// A shopping cart is the metaphor used by most e-commerce solutions. It is a
+        /// temporary data storage structure that resides on Amazon servers. The
+        /// structure contains the items a customer wants to buy. In ECS, the shopping
+        /// cart is considered remote because it is hosted by Amazon servers.
+        /// In this way, the cart is remote to the vendor's web site where the customer
+        /// views and selects the items they want to purchase.
+        /// <p/>
+        /// Once you add an item to a cart by specifying the item's ListItemId and ASIN,
+        /// or OfferListing ID, the item is assigned a CartItemId and accessible only
+        /// by that value. That is, in subsequent requests, an item in a cart cannot
+        /// be accessed by its ListItemId and ASIN, or OfferListingId. CartItemId is
+        /// returned by CartCreate , CartGet , and CartAdd .
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons, such as
+        /// item availability, you should not keep a copy of a cart locally. Instead,
+        /// use the other cart operations to modify the cart contents. For example,
+        /// to retrieve contents of the cart, which are represented by CartItemIds,
+        /// use CartGet .
+        /// <p/>
+        /// Available products are added as cart items. Unavailable items, for example,
+        /// items out of stock, discontinued, or future releases, are added as SaveForLaterItems.
+        /// No error is generated. The Amazon database changes regularly. You may find a product
+        /// with an offer listing ID but by the time the item is added to the cart the product
+        /// is no longer available. The checkout page in the Order Pipeline clearly lists
+        /// items that are available and those that are SaveForLaterItems.
+        /// <p/>
+        /// It is impossible to create an empty shopping cart. You have to add at least one
+        /// item to a shopping cart using a single CartCreate request. You can add specific
+        /// quantities (up to 999) of each item.
+        /// <p/>
+        /// CartCreate can be used only once in the life cycle of a cart. To modify the
+        /// contents of the cart, use one of the other cart operations.
+        /// <p/>
+        /// Carts cannot be deleted. They expire automatically after being unused for 7 days.
+        /// The lifespan of a cart restarts, however, every time a cart is modified.
+        /// In this way, a cart can last for more than 7 days. If, for example, on day 6,
+        /// the customer modifies a cart, the 7 day countdown starts over.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CartCreate request</param>
+        public static void InvokeCartCreate(AmazonECS service, params CartCreateRequest [] request) 
+        {
+            try 
+            {
+                CartCreateResponse response = service.CartCreate(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CartCreateResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Cart> cartList = response.Cart;
+                foreach (Cart cart in cartList) 
+                {
+                    Console.WriteLine("            Cart");
+                    if (cart.IsSetCartId()) 
+                    {
+                        Console.WriteLine("                CartId");
+                        Console.WriteLine("                    {0}", cart.CartId);
+                    }
+                    if (cart.IsSetHMAC()) 
+                    {
+                        Console.WriteLine("                HMAC");
+                        Console.WriteLine("                    {0}", cart.HMAC);
+                    }
+                    if (cart.IsSetURLEncodedHMAC()) 
+                    {
+                        Console.WriteLine("                URLEncodedHMAC");
+                        Console.WriteLine("                    {0}", cart.URLEncodedHMAC);
+                    }
+                    if (cart.IsSetPurchaseURL()) 
+                    {
+                        Console.WriteLine("                PurchaseURL");
+                        Console.WriteLine("                    {0}", cart.PurchaseURL);
+                    }
+                    if (cart.IsSetSubTotal()) 
+                    {
+                        Console.WriteLine("                SubTotal");
+                        Price  subTotal = cart.SubTotal;
+                        if (subTotal.IsSetAmount()) 
+                        {
+                            Console.WriteLine("                    Amount");
+                            Console.WriteLine("                        {0}", subTotal.Amount);
+                        }
+                        if (subTotal.IsSetCurrencyCode()) 
+                        {
+                            Console.WriteLine("                    CurrencyCode");
+                            Console.WriteLine("                        {0}", subTotal.CurrencyCode);
+                        }
+                        if (subTotal.IsSetFormattedPrice()) 
+                        {
+                            Console.WriteLine("                    FormattedPrice");
+                            Console.WriteLine("                        {0}", subTotal.FormattedPrice);
+                        }
+                    } 
+                    if (cart.IsSetCartItems()) 
+                    {
+                        Console.WriteLine("                CartItems");
+                        CartItems  cartItems = cart.CartItems;
+                        if (cartItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = cartItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> cartItemList = cartItems.CartItem;
+                        foreach (CartItem cartItem in cartItemList) 
+                        {
+                            Console.WriteLine("                    CartItem");
+                            if (cartItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", cartItem.CartItemId);
+                            }
+                            if (cartItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", cartItem.ASIN);
+                            }
+                            if (cartItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", cartItem.ExchangeId);
+                            }
+                            if (cartItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", cartItem.MerchantId);
+                            }
+                            if (cartItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", cartItem.SellerId);
+                            }
+                            if (cartItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", cartItem.SellerNickname);
+                            }
+                            if (cartItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", cartItem.Quantity);
+                            }
+                            if (cartItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", cartItem.Title);
+                            }
+                            if (cartItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", cartItem.ProductGroup);
+                            }
+                            if (cartItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", cartItem.ListOwner);
+                            }
+                            if (cartItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", cartItem.ListType);
+                            }
+                            if (cartItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = cartItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (cartItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = cartItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (cartItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = cartItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSavedForLaterItems()) 
+                    {
+                        Console.WriteLine("                SavedForLaterItems");
+                        SavedForLaterItems  savedForLaterItems = cart.SavedForLaterItems;
+                        if (savedForLaterItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = savedForLaterItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> savedForLaterItemList = savedForLaterItems.SavedForLaterItem;
+                        foreach (CartItem savedForLaterItem in savedForLaterItemList) 
+                        {
+                            Console.WriteLine("                    SavedForLaterItem");
+                            if (savedForLaterItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.CartItemId);
+                            }
+                            if (savedForLaterItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ASIN);
+                            }
+                            if (savedForLaterItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ExchangeId);
+                            }
+                            if (savedForLaterItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.MerchantId);
+                            }
+                            if (savedForLaterItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerId);
+                            }
+                            if (savedForLaterItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerNickname);
+                            }
+                            if (savedForLaterItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Quantity);
+                            }
+                            if (savedForLaterItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Title);
+                            }
+                            if (savedForLaterItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ProductGroup);
+                            }
+                            if (savedForLaterItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListOwner);
+                            }
+                            if (savedForLaterItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListType);
+                            }
+                            if (savedForLaterItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = savedForLaterItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = savedForLaterItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = savedForLaterItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSimilarProducts()) 
+                    {
+                        Console.WriteLine("                SimilarProducts");
+                        SimilarProducts  similarProducts = cart.SimilarProducts;
+                        List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                        foreach (SimilarProduct similarProduct in similarProductList) 
+                        {
+                            Console.WriteLine("                    SimilarProduct");
+                            if (similarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarProduct.ASIN);
+                            }
+                            if (similarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetTopSellers()) 
+                    {
+                        Console.WriteLine("                TopSellers");
+                        TopSellers  topSellers = cart.TopSellers;
+                        List<TopSeller> topSellerList = topSellers.TopSeller;
+                        foreach (TopSeller topSeller in topSellerList) 
+                        {
+                            Console.WriteLine("                    TopSeller");
+                            if (topSeller.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", topSeller.ASIN);
+                            }
+                            if (topSeller.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", topSeller.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetNewReleases()) 
+                    {
+                        Console.WriteLine("                NewReleases");
+                        NewReleases  newReleases = cart.NewReleases;
+                        List<NewRelease> newReleaseList = newReleases.NewRelease;
+                        foreach (NewRelease newRelease in newReleaseList) 
+                        {
+                            Console.WriteLine("                    NewRelease");
+                            if (newRelease.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", newRelease.ASIN);
+                            }
+                            if (newRelease.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", newRelease.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetSimilarViewedProducts()) 
+                    {
+                        Console.WriteLine("                SimilarViewedProducts");
+                        SimilarViewedProducts  similarViewedProducts = cart.SimilarViewedProducts;
+                        List<SimilarViewedProduct> similarViewedProductList = similarViewedProducts.SimilarViewedProduct;
+                        foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) 
+                        {
+                            Console.WriteLine("                    SimilarViewedProduct");
+                            if (similarViewedProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarViewedProduct.ASIN);
+                            }
+                            if (similarViewedProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarViewedProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetOtherCategoriesSimilarProducts()) 
+                    {
+                        Console.WriteLine("                OtherCategoriesSimilarProducts");
+                        OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = cart.OtherCategoriesSimilarProducts;
+                        List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = otherCategoriesSimilarProducts.OtherCategoriesSimilarProduct;
+                        foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) 
+                        {
+                            Console.WriteLine("                    OtherCategoriesSimilarProduct");
+                            if (otherCategoriesSimilarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.ASIN);
+                            }
+                            if (otherCategoriesSimilarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.Title);
+                            }
+                        }
+                    } 
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartGetSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartGetSample.cs
new file mode 100644
index 0000000..e56a563
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartGetSample.cs
@@ -0,0 +1,558 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Cart Get  Samples
+    /// </summary>
+    public class CartGetSample
+    {
+    
+                                                                 
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The CartGet operation enables you to retrieve the IDs, quantities,
+        /// and prices of all of the items, including SavedForLater items in a
+        /// remote shopping cart.
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons,
+        /// such as availability, you should not keep a copy of a cart locally.
+        /// Instead, use CartGet to retrieve the items in a remote shopping cart.
+        /// <p/>
+        /// To retrieve the items in a cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned in the CartCreate operation.
+        /// A value similar to HMAC, URLEncodedHMAC, is also returned. This value is the
+        /// URL encoded version of the HMAC. This encoding is necessary because some
+        /// characters, such as + and /, cannot be included in a URL. Rather than
+        /// encoding the HMAC yourself, use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartGet does not work after the customer has used the PurchaseURL to either
+        /// purchase the items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartGet
+        /// requests must also include a value for AssociateTag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CartGet request</param>
+        public static void InvokeCartGet(AmazonECS service, params CartGetRequest [] request) 
+        {
+            try 
+            {
+                CartGetResponse response = service.CartGet(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CartGetResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Cart> cartList = response.Cart;
+                foreach (Cart cart in cartList) 
+                {
+                    Console.WriteLine("            Cart");
+                    if (cart.IsSetCartId()) 
+                    {
+                        Console.WriteLine("                CartId");
+                        Console.WriteLine("                    {0}", cart.CartId);
+                    }
+                    if (cart.IsSetHMAC()) 
+                    {
+                        Console.WriteLine("                HMAC");
+                        Console.WriteLine("                    {0}", cart.HMAC);
+                    }
+                    if (cart.IsSetURLEncodedHMAC()) 
+                    {
+                        Console.WriteLine("                URLEncodedHMAC");
+                        Console.WriteLine("                    {0}", cart.URLEncodedHMAC);
+                    }
+                    if (cart.IsSetPurchaseURL()) 
+                    {
+                        Console.WriteLine("                PurchaseURL");
+                        Console.WriteLine("                    {0}", cart.PurchaseURL);
+                    }
+                    if (cart.IsSetSubTotal()) 
+                    {
+                        Console.WriteLine("                SubTotal");
+                        Price  subTotal = cart.SubTotal;
+                        if (subTotal.IsSetAmount()) 
+                        {
+                            Console.WriteLine("                    Amount");
+                            Console.WriteLine("                        {0}", subTotal.Amount);
+                        }
+                        if (subTotal.IsSetCurrencyCode()) 
+                        {
+                            Console.WriteLine("                    CurrencyCode");
+                            Console.WriteLine("                        {0}", subTotal.CurrencyCode);
+                        }
+                        if (subTotal.IsSetFormattedPrice()) 
+                        {
+                            Console.WriteLine("                    FormattedPrice");
+                            Console.WriteLine("                        {0}", subTotal.FormattedPrice);
+                        }
+                    } 
+                    if (cart.IsSetCartItems()) 
+                    {
+                        Console.WriteLine("                CartItems");
+                        CartItems  cartItems = cart.CartItems;
+                        if (cartItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = cartItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> cartItemList = cartItems.CartItem;
+                        foreach (CartItem cartItem in cartItemList) 
+                        {
+                            Console.WriteLine("                    CartItem");
+                            if (cartItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", cartItem.CartItemId);
+                            }
+                            if (cartItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", cartItem.ASIN);
+                            }
+                            if (cartItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", cartItem.ExchangeId);
+                            }
+                            if (cartItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", cartItem.MerchantId);
+                            }
+                            if (cartItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", cartItem.SellerId);
+                            }
+                            if (cartItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", cartItem.SellerNickname);
+                            }
+                            if (cartItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", cartItem.Quantity);
+                            }
+                            if (cartItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", cartItem.Title);
+                            }
+                            if (cartItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", cartItem.ProductGroup);
+                            }
+                            if (cartItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", cartItem.ListOwner);
+                            }
+                            if (cartItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", cartItem.ListType);
+                            }
+                            if (cartItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = cartItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (cartItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = cartItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (cartItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = cartItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSavedForLaterItems()) 
+                    {
+                        Console.WriteLine("                SavedForLaterItems");
+                        SavedForLaterItems  savedForLaterItems = cart.SavedForLaterItems;
+                        if (savedForLaterItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = savedForLaterItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> savedForLaterItemList = savedForLaterItems.SavedForLaterItem;
+                        foreach (CartItem savedForLaterItem in savedForLaterItemList) 
+                        {
+                            Console.WriteLine("                    SavedForLaterItem");
+                            if (savedForLaterItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.CartItemId);
+                            }
+                            if (savedForLaterItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ASIN);
+                            }
+                            if (savedForLaterItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ExchangeId);
+                            }
+                            if (savedForLaterItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.MerchantId);
+                            }
+                            if (savedForLaterItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerId);
+                            }
+                            if (savedForLaterItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerNickname);
+                            }
+                            if (savedForLaterItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Quantity);
+                            }
+                            if (savedForLaterItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Title);
+                            }
+                            if (savedForLaterItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ProductGroup);
+                            }
+                            if (savedForLaterItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListOwner);
+                            }
+                            if (savedForLaterItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListType);
+                            }
+                            if (savedForLaterItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = savedForLaterItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = savedForLaterItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = savedForLaterItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSimilarProducts()) 
+                    {
+                        Console.WriteLine("                SimilarProducts");
+                        SimilarProducts  similarProducts = cart.SimilarProducts;
+                        List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                        foreach (SimilarProduct similarProduct in similarProductList) 
+                        {
+                            Console.WriteLine("                    SimilarProduct");
+                            if (similarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarProduct.ASIN);
+                            }
+                            if (similarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetTopSellers()) 
+                    {
+                        Console.WriteLine("                TopSellers");
+                        TopSellers  topSellers = cart.TopSellers;
+                        List<TopSeller> topSellerList = topSellers.TopSeller;
+                        foreach (TopSeller topSeller in topSellerList) 
+                        {
+                            Console.WriteLine("                    TopSeller");
+                            if (topSeller.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", topSeller.ASIN);
+                            }
+                            if (topSeller.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", topSeller.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetNewReleases()) 
+                    {
+                        Console.WriteLine("                NewReleases");
+                        NewReleases  newReleases = cart.NewReleases;
+                        List<NewRelease> newReleaseList = newReleases.NewRelease;
+                        foreach (NewRelease newRelease in newReleaseList) 
+                        {
+                            Console.WriteLine("                    NewRelease");
+                            if (newRelease.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", newRelease.ASIN);
+                            }
+                            if (newRelease.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", newRelease.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetSimilarViewedProducts()) 
+                    {
+                        Console.WriteLine("                SimilarViewedProducts");
+                        SimilarViewedProducts  similarViewedProducts = cart.SimilarViewedProducts;
+                        List<SimilarViewedProduct> similarViewedProductList = similarViewedProducts.SimilarViewedProduct;
+                        foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) 
+                        {
+                            Console.WriteLine("                    SimilarViewedProduct");
+                            if (similarViewedProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarViewedProduct.ASIN);
+                            }
+                            if (similarViewedProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarViewedProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetOtherCategoriesSimilarProducts()) 
+                    {
+                        Console.WriteLine("                OtherCategoriesSimilarProducts");
+                        OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = cart.OtherCategoriesSimilarProducts;
+                        List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = otherCategoriesSimilarProducts.OtherCategoriesSimilarProduct;
+                        foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) 
+                        {
+                            Console.WriteLine("                    OtherCategoriesSimilarProduct");
+                            if (otherCategoriesSimilarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.ASIN);
+                            }
+                            if (otherCategoriesSimilarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.Title);
+                            }
+                        }
+                    } 
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                        }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartModifySample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartModifySample.cs
new file mode 100644
index 0000000..6b0258f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CartModifySample.cs
@@ -0,0 +1,563 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Cart Modify  Samples
+    /// </summary>
+    public class CartModifySample
+    {
+    
+                                                                             
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The CartModify operation enables you to:
+        /// <p/>
+        /// <ul>
+        /// <li>Change the quantity of items that are already in a remote shopping cart.</li>
+        /// <li>Move items from the active area of a cart to the SaveForLater area or the reverse</li>
+        /// <li>Change the MergeCart setting. </li>
+        /// </ul>
+        /// <p/>
+        /// To modify the number of items in a cart, you must specify the
+        /// cart using the CartId and HMAC values that are returned in the
+        /// CartCreate operation. A value similar to HMAC, URLEncodedHMAC,
+        /// is also returned. This value is the URL encoded version of the HMAC.
+        /// This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself,
+        /// use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// You can use CartModify to modify the number of items in a remote shopping
+        /// cart by setting the value of the Quantity parameter appropriately. You can
+        /// eliminate an item from a cart by setting the value of the Quantity parameter
+        /// to zero. Or, you can double the number of a particular item in the cart by
+        /// doubling its Quantity . You cannot, however, use CartModify to add new items to a cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all
+        /// CartModify requests must also include a value for Associate Tag
+        /// otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CartModify request</param>
+        public static void InvokeCartModify(AmazonECS service, params CartModifyRequest [] request) 
+        {
+            try 
+            {
+                CartModifyResponse response = service.CartModify(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CartModifyResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Cart> cartList = response.Cart;
+                foreach (Cart cart in cartList) 
+                {
+                    Console.WriteLine("            Cart");
+                    if (cart.IsSetCartId()) 
+                    {
+                        Console.WriteLine("                CartId");
+                        Console.WriteLine("                    {0}", cart.CartId);
+                    }
+                    if (cart.IsSetHMAC()) 
+                    {
+                        Console.WriteLine("                HMAC");
+                        Console.WriteLine("                    {0}", cart.HMAC);
+                    }
+                    if (cart.IsSetURLEncodedHMAC()) 
+                    {
+                        Console.WriteLine("                URLEncodedHMAC");
+                        Console.WriteLine("                    {0}", cart.URLEncodedHMAC);
+                    }
+                    if (cart.IsSetPurchaseURL()) 
+                    {
+                        Console.WriteLine("                PurchaseURL");
+                        Console.WriteLine("                    {0}", cart.PurchaseURL);
+                    }
+                    if (cart.IsSetSubTotal()) 
+                    {
+                        Console.WriteLine("                SubTotal");
+                        Price  subTotal = cart.SubTotal;
+                        if (subTotal.IsSetAmount()) 
+                        {
+                            Console.WriteLine("                    Amount");
+                            Console.WriteLine("                        {0}", subTotal.Amount);
+                        }
+                        if (subTotal.IsSetCurrencyCode()) 
+                        {
+                            Console.WriteLine("                    CurrencyCode");
+                            Console.WriteLine("                        {0}", subTotal.CurrencyCode);
+                        }
+                        if (subTotal.IsSetFormattedPrice()) 
+                        {
+                            Console.WriteLine("                    FormattedPrice");
+                            Console.WriteLine("                        {0}", subTotal.FormattedPrice);
+                        }
+                    } 
+                    if (cart.IsSetCartItems()) 
+                    {
+                        Console.WriteLine("                CartItems");
+                        CartItems  cartItems = cart.CartItems;
+                        if (cartItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = cartItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> cartItemList = cartItems.CartItem;
+                        foreach (CartItem cartItem in cartItemList) 
+                        {
+                            Console.WriteLine("                    CartItem");
+                            if (cartItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", cartItem.CartItemId);
+                            }
+                            if (cartItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", cartItem.ASIN);
+                            }
+                            if (cartItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", cartItem.ExchangeId);
+                            }
+                            if (cartItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", cartItem.MerchantId);
+                            }
+                            if (cartItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", cartItem.SellerId);
+                            }
+                            if (cartItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", cartItem.SellerNickname);
+                            }
+                            if (cartItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", cartItem.Quantity);
+                            }
+                            if (cartItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", cartItem.Title);
+                            }
+                            if (cartItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", cartItem.ProductGroup);
+                            }
+                            if (cartItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", cartItem.ListOwner);
+                            }
+                            if (cartItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", cartItem.ListType);
+                            }
+                            if (cartItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = cartItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (cartItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = cartItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (cartItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = cartItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSavedForLaterItems()) 
+                    {
+                        Console.WriteLine("                SavedForLaterItems");
+                        SavedForLaterItems  savedForLaterItems = cart.SavedForLaterItems;
+                        if (savedForLaterItems.IsSetSubTotal()) 
+                        {
+                            Console.WriteLine("                    SubTotal");
+                            Price  subTotal = savedForLaterItems.SubTotal;
+                            if (subTotal.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", subTotal.Amount);
+                            }
+                            if (subTotal.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", subTotal.CurrencyCode);
+                            }
+                            if (subTotal.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", subTotal.FormattedPrice);
+                            }
+                        } 
+                        List<CartItem> savedForLaterItemList = savedForLaterItems.SavedForLaterItem;
+                        foreach (CartItem savedForLaterItem in savedForLaterItemList) 
+                        {
+                            Console.WriteLine("                    SavedForLaterItem");
+                            if (savedForLaterItem.IsSetCartItemId()) 
+                            {
+                                Console.WriteLine("                        CartItemId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.CartItemId);
+                            }
+                            if (savedForLaterItem.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ASIN);
+                            }
+                            if (savedForLaterItem.IsSetExchangeId()) 
+                            {
+                                Console.WriteLine("                        ExchangeId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ExchangeId);
+                            }
+                            if (savedForLaterItem.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.MerchantId);
+                            }
+                            if (savedForLaterItem.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerId);
+                            }
+                            if (savedForLaterItem.IsSetSellerNickname()) 
+                            {
+                                Console.WriteLine("                        SellerNickname");
+                                Console.WriteLine("                            {0}", savedForLaterItem.SellerNickname);
+                            }
+                            if (savedForLaterItem.IsSetQuantity()) 
+                            {
+                                Console.WriteLine("                        Quantity");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Quantity);
+                            }
+                            if (savedForLaterItem.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", savedForLaterItem.Title);
+                            }
+                            if (savedForLaterItem.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ProductGroup);
+                            }
+                            if (savedForLaterItem.IsSetListOwner()) 
+                            {
+                                Console.WriteLine("                        ListOwner");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListOwner);
+                            }
+                            if (savedForLaterItem.IsSetListType()) 
+                            {
+                                Console.WriteLine("                        ListType");
+                                Console.WriteLine("                            {0}", savedForLaterItem.ListType);
+                            }
+                            if (savedForLaterItem.IsSetMetaData()) 
+                            {
+                                Console.WriteLine("                        MetaData");
+                                CartItemMetaData  metaData = savedForLaterItem.MetaData;
+                                List<MetaData> keyValuePairList = metaData.KeyValuePair;
+                                foreach (MetaData keyValuePair in keyValuePairList) 
+                                {
+                                    Console.WriteLine("                            KeyValuePair");
+                                    if (keyValuePair.IsSetKey()) 
+                                    {
+                                        Console.WriteLine("                                Key");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Key);
+                                    }
+                                    if (keyValuePair.IsSetValue()) 
+                                    {
+                                        Console.WriteLine("                                Value");
+                                        Console.WriteLine("                                    {0}", keyValuePair.Value);
+                                    }
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetPrice()) 
+                            {
+                                Console.WriteLine("                        Price");
+                                Price  price = savedForLaterItem.Price;
+                                if (price.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", price.Amount);
+                                }
+                                if (price.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", price.CurrencyCode);
+                                }
+                                if (price.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", price.FormattedPrice);
+                                }
+                            } 
+                            if (savedForLaterItem.IsSetItemTotal()) 
+                            {
+                                Console.WriteLine("                        ItemTotal");
+                                Price  itemTotal = savedForLaterItem.ItemTotal;
+                                if (itemTotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", itemTotal.Amount);
+                                }
+                                if (itemTotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", itemTotal.CurrencyCode);
+                                }
+                                if (itemTotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", itemTotal.FormattedPrice);
+                                }
+                            } 
+                        }
+                    } 
+                    if (cart.IsSetSimilarProducts()) 
+                    {
+                        Console.WriteLine("                SimilarProducts");
+                        SimilarProducts  similarProducts = cart.SimilarProducts;
+                        List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                        foreach (SimilarProduct similarProduct in similarProductList) 
+                        {
+                            Console.WriteLine("                    SimilarProduct");
+                            if (similarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarProduct.ASIN);
+                            }
+                            if (similarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetTopSellers()) 
+                    {
+                        Console.WriteLine("                TopSellers");
+                        TopSellers  topSellers = cart.TopSellers;
+                        List<TopSeller> topSellerList = topSellers.TopSeller;
+                        foreach (TopSeller topSeller in topSellerList) 
+                        {
+                            Console.WriteLine("                    TopSeller");
+                            if (topSeller.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", topSeller.ASIN);
+                            }
+                            if (topSeller.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", topSeller.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetNewReleases()) 
+                    {
+                        Console.WriteLine("                NewReleases");
+                        NewReleases  newReleases = cart.NewReleases;
+                        List<NewRelease> newReleaseList = newReleases.NewRelease;
+                        foreach (NewRelease newRelease in newReleaseList) 
+                        {
+                            Console.WriteLine("                    NewRelease");
+                            if (newRelease.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", newRelease.ASIN);
+                            }
+                            if (newRelease.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", newRelease.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetSimilarViewedProducts()) 
+                    {
+                        Console.WriteLine("                SimilarViewedProducts");
+                        SimilarViewedProducts  similarViewedProducts = cart.SimilarViewedProducts;
+                        List<SimilarViewedProduct> similarViewedProductList = similarViewedProducts.SimilarViewedProduct;
+                        foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) 
+                        {
+                            Console.WriteLine("                    SimilarViewedProduct");
+                            if (similarViewedProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", similarViewedProduct.ASIN);
+                            }
+                            if (similarViewedProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", similarViewedProduct.Title);
+                            }
+                        }
+                    } 
+                    if (cart.IsSetOtherCategoriesSimilarProducts()) 
+                    {
+                        Console.WriteLine("                OtherCategoriesSimilarProducts");
+                        OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = cart.OtherCategoriesSimilarProducts;
+                        List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = otherCategoriesSimilarProducts.OtherCategoriesSimilarProduct;
+                        foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) 
+                        {
+                            Console.WriteLine("                    OtherCategoriesSimilarProduct");
+                            if (otherCategoriesSimilarProduct.IsSetASIN()) 
+                            {
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.ASIN);
+                            }
+                            if (otherCategoriesSimilarProduct.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", otherCategoriesSimilarProduct.Title);
+                            }
+                        }
+                    } 
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                            }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentLookupSample.cs
new file mode 100644
index 0000000..8ffe05a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentLookupSample.cs
@@ -0,0 +1,5121 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Customer Content Lookup  Samples
+    /// </summary>
+    public class CustomerContentLookupSample
+    {
+    
+                                                     
+        /// <summary>
+        /// 
+        /// <p/>
+        /// For a given customer ID, the CustomerContentLookup operation
+        /// retrieves all of the information a customer has made public about
+        /// themselves on Amazon. Such information includes some or all of the following:
+        /// <p/>
+        /// <ul>
+        /// <li>AboutMe</li>
+        /// <li>Birthday</li>
+        /// <li>City, State and Country</li>
+        /// <li>Customer Reviews</li>
+        /// <li>Customer ID</li>
+        /// <li>Name</li>
+        /// <li>Nickname</li>
+        /// <li>Wedding Registry</li>
+        /// <li>WishList</li>
+        /// </ul>
+        /// <p/>
+        /// To find a customer ID, use the CustomerContentSearch operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// <li>CustomerReviews</li>
+        /// <li>CustomerLists</li>
+        /// <li>CustomerFull</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CustomerContentLookup request</param>
+        public static void InvokeCustomerContentLookup(AmazonECS service, params CustomerContentLookupRequest [] request) 
+        {
+            try 
+            {
+                CustomerContentLookupResponse response = service.CustomerContentLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CustomerContentLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Customers> customersList = response.Customers;
+                foreach (Customers customers in customersList) 
+                {
+                    Console.WriteLine("            Customers");
+                    if (customers.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", customers.TotalResults);
+                    }
+                    if (customers.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", customers.TotalPages);
+                    }
+                    List<Customer> customerList = customers.Customer;
+                    foreach (Customer customer in customerList) 
+                    {
+                        Console.WriteLine("                Customer");
+                        if (customer.IsSetCustomerId()) 
+                        {
+                            Console.WriteLine("                    CustomerId");
+                            Console.WriteLine("                        {0}", customer.CustomerId);
+                        }
+                        if (customer.IsSetNickname()) 
+                        {
+                            Console.WriteLine("                    Nickname");
+                            Console.WriteLine("                        {0}", customer.Nickname);
+                        }
+                        if (customer.IsSetBirthday()) 
+                        {
+                            Console.WriteLine("                    Birthday");
+                            Console.WriteLine("                        {0}", customer.Birthday);
+                        }
+                        if (customer.IsSetWishListId()) 
+                        {
+                            Console.WriteLine("                    WishListId");
+                            Console.WriteLine("                        {0}", customer.WishListId);
+                        }
+                        if (customer.IsSetLocation()) 
+                        {
+                            Console.WriteLine("                    Location");
+                            CustomerLocation  location = customer.Location;
+                            if (location.IsSetUserDefinedLocation()) 
+                            {
+                                Console.WriteLine("                        UserDefinedLocation");
+                                Console.WriteLine("                            {0}", location.UserDefinedLocation);
+                            }
+                            if (location.IsSetCity()) 
+                            {
+                                Console.WriteLine("                        City");
+                                Console.WriteLine("                            {0}", location.City);
+                            }
+                            if (location.IsSetState()) 
+                            {
+                                Console.WriteLine("                        State");
+                                Console.WriteLine("                            {0}", location.State);
+                            }
+                            if (location.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", location.Country);
+                            }
+                        } 
+                        List<CustomerReviews> customerReviewsList = customer.CustomerReviews;
+                        foreach (CustomerReviews customerReviews in customerReviewsList) 
+                        {
+                            Console.WriteLine("                    CustomerReviews");
+                            if (customerReviews.IsSetAverageRating()) 
+                            {
+                                Console.WriteLine("                        AverageRating");
+                                Console.WriteLine("                            {0}", customerReviews.AverageRating);
+                            }
+                            if (customerReviews.IsSetTotalReviews()) 
+                            {
+                                Console.WriteLine("                        TotalReviews");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviews);
+                            }
+                            if (customerReviews.IsSetTotalReviewPages()) 
+                            {
+                                Console.WriteLine("                        TotalReviewPages");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviewPages);
+                            }
+                            List<Review> reviewList = customerReviews.Review;
+                            foreach (Review review in reviewList) 
+                            {
+                                Console.WriteLine("                        Review");
+                                if (review.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", review.ASIN);
+                                }
+                                if (review.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", review.Rating);
+                                }
+                                if (review.IsSetHelpfulVotes()) 
+                                {
+                                    Console.WriteLine("                            HelpfulVotes");
+                                    Console.WriteLine("                                {0}", review.HelpfulVotes);
+                                }
+                                if (review.IsSetCustomerId()) 
+                                {
+                                    Console.WriteLine("                            CustomerId");
+                                    Console.WriteLine("                                {0}", review.CustomerId);
+                                }
+                                if (review.IsSetReviewer()) 
+                                {
+                                    Console.WriteLine("                            Reviewer");
+                                    Reviewer  reviewer = review.Reviewer;
+                                    if (reviewer.IsSetCustomerId()) 
+                                    {
+                                        Console.WriteLine("                                CustomerId");
+                                        Console.WriteLine("                                    {0}", reviewer.CustomerId);
+                                    }
+                                    if (reviewer.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", reviewer.Name);
+                                    }
+                                    if (reviewer.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", reviewer.Nickname);
+                                    }
+                                    if (reviewer.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        Console.WriteLine("                                    {0}", reviewer.Location);
+                                    }
+                                } 
+                                if (review.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", review.TotalVotes);
+                                }
+                                if (review.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", review.Date);
+                                }
+                                if (review.IsSetSummary()) 
+                                {
+                                    Console.WriteLine("                            Summary");
+                                    Console.WriteLine("                                {0}", review.Summary);
+                                }
+                                if (review.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", review.Content);
+                                }
+                            }
+                        }
+                        if (customer.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = customer.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetItem()) 
+                                    {
+                                        Console.WriteLine("                                Item");
+                                        Item  item = taggedItems.Item;
+                                        if (item.IsSetAlternateVersions()) 
+                                        {
+                                            Console.WriteLine("                                    AlternateVersions");
+                                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                                            {
+                                                Console.WriteLine("                                        AlternateVersion");
+                                                if (alternateVersion.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.ASIN);
+                                                }
+                                                if (alternateVersion.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Title);
+                                                }
+                                                if (alternateVersion.IsSetBinding()) 
+                                                {
+                                                    Console.WriteLine("                                            Binding");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Binding);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", item.ASIN);
+                                        }
+                                        if (item.IsSetParentASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ParentASIN");
+                                            Console.WriteLine("                                        {0}", item.ParentASIN);
+                                        }
+                                        if (item.IsSetDetailPageURL()) 
+                                        {
+                                            Console.WriteLine("                                    DetailPageURL");
+                                            Console.WriteLine("                                        {0}", item.DetailPageURL);
+                                        }
+                                        if (item.IsSetSalesRank()) 
+                                        {
+                                            Console.WriteLine("                                    SalesRank");
+                                            Console.WriteLine("                                        {0}", item.SalesRank);
+                                        }
+                                        if (item.IsSetSmallImage()) 
+                                        {
+                                            Console.WriteLine("                                    SmallImage");
+                                            Image  smallImage = item.SmallImage;
+                                            if (smallImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", smallImage.URL);
+                                            }
+                                            if (smallImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = smallImage.Height;
+                                            } 
+                                            if (smallImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = smallImage.Width;
+                                            } 
+                                            if (smallImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", smallImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetMediumImage()) 
+                                        {
+                                            Console.WriteLine("                                    MediumImage");
+                                            Image  mediumImage = item.MediumImage;
+                                            if (mediumImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", mediumImage.URL);
+                                            }
+                                            if (mediumImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = mediumImage.Height;
+                                            } 
+                                            if (mediumImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = mediumImage.Width;
+                                            } 
+                                            if (mediumImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", mediumImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetLargeImage()) 
+                                        {
+                                            Console.WriteLine("                                    LargeImage");
+                                            Image  largeImage = item.LargeImage;
+                                            if (largeImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", largeImage.URL);
+                                            }
+                                            if (largeImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = largeImage.Height;
+                                            } 
+                                            if (largeImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = largeImage.Width;
+                                            } 
+                                            if (largeImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", largeImage.IsVerified);
+                                            }
+                                        } 
+                                        List<ImageSets> imageSetsList = item.ImageSets;
+                                        foreach (ImageSets imageSets in imageSetsList) 
+                                        {
+                                            Console.WriteLine("                                    ImageSets");
+                                            if (imageSets.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", imageSets.MerchantId);
+                                            }
+                                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                                            foreach (ImageSet imageSet in imageSetList) 
+                                            {
+                                                Console.WriteLine("                                        ImageSet");
+                                                if (imageSet.IsSetSwatchImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SwatchImage");
+                                                    Image  swatchImage = imageSet.SwatchImage;
+                                                    if (swatchImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.URL);
+                                                    }
+                                                    if (swatchImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = swatchImage.Height;
+                                                    } 
+                                                    if (swatchImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = swatchImage.Width;
+                                                    } 
+                                                    if (swatchImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetSmallImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SmallImage");
+                                                    Image  smallImage = imageSet.SmallImage;
+                                                    if (smallImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", smallImage.URL);
+                                                    }
+                                                    if (smallImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = smallImage.Height;
+                                                    } 
+                                                    if (smallImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = smallImage.Width;
+                                                    } 
+                                                    if (smallImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", smallImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetThumbnailImage()) 
+                                                {
+                                                    Console.WriteLine("                                            ThumbnailImage");
+                                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                                    if (thumbnailImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.URL);
+                                                    }
+                                                    if (thumbnailImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                                    } 
+                                                    if (thumbnailImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                                    } 
+                                                    if (thumbnailImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetTinyImage()) 
+                                                {
+                                                    Console.WriteLine("                                            TinyImage");
+                                                    Image  tinyImage = imageSet.TinyImage;
+                                                    if (tinyImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.URL);
+                                                    }
+                                                    if (tinyImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = tinyImage.Height;
+                                                    } 
+                                                    if (tinyImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = tinyImage.Width;
+                                                    } 
+                                                    if (tinyImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetMediumImage()) 
+                                                {
+                                                    Console.WriteLine("                                            MediumImage");
+                                                    Image  mediumImage = imageSet.MediumImage;
+                                                    if (mediumImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.URL);
+                                                    }
+                                                    if (mediumImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = mediumImage.Height;
+                                                    } 
+                                                    if (mediumImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = mediumImage.Width;
+                                                    } 
+                                                    if (mediumImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetLargeImage()) 
+                                                {
+                                                    Console.WriteLine("                                            LargeImage");
+                                                    Image  largeImage = imageSet.LargeImage;
+                                                    if (largeImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", largeImage.URL);
+                                                    }
+                                                    if (largeImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = largeImage.Height;
+                                                    } 
+                                                    if (largeImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = largeImage.Width;
+                                                    } 
+                                                    if (largeImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", largeImage.IsVerified);
+                                                    }
+                                                } 
+                                            }
+                                        }
+                                        if (item.IsSetItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    ItemAttributes");
+                                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                                            List<String> actorList  =  itemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (itemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = itemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            List<String> ageList  =  itemAttributes.Age;
+                                            foreach (String age in ageList) 
+                                            { 
+                                                Console.WriteLine("                                        Age");
+                                                Console.WriteLine("                                            {0}", age);
+                                            }	
+                                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AnalogVideoFormat");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AnalogVideoFormat);
+                                            }
+                                            if (itemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  itemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (itemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AspectRatio);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyInstructions);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyRequired);
+                                            }
+                                            if (itemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  itemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (itemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BackFinding);
+                                            }
+                                            if (itemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BandMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesIncluded);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesRequired);
+                                            }
+                                            if (itemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                                            } 
+                                            if (itemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryDescription);
+                                            }
+                                            if (itemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryType);
+                                            }
+                                            if (itemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BezelMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Binding);
+                                            }
+                                            if (itemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Brand);
+                                            }
+                                            if (itemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                                            } 
+                                            if (itemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                                            } 
+                                            if (itemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseType);
+                                            }
+                                            if (itemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CatalogNumber);
+                                            }
+                                            List<String> categoryList  =  itemAttributes.Category;
+                                            foreach (String category in categoryList) 
+                                            { 
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", category);
+                                            }	
+                                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                                            foreach (String categoryBin in categoryBinList) 
+                                            { 
+                                                Console.WriteLine("                                        CategoryBin");
+                                                Console.WriteLine("                                            {0}", categoryBin);
+                                            }	
+                                            if (itemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ChainType);
+                                            }
+                                            List<String> characterList  =  itemAttributes.Character;
+                                            foreach (String character in characterList) 
+                                            { 
+                                                Console.WriteLine("                                        Character");
+                                                Console.WriteLine("                                            {0}", character);
+                                            }	
+                                            if (itemAttributes.IsSetCEROAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        CEROAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CEROAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClaspType);
+                                            }
+                                            if (itemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClothingSize);
+                                            }
+                                            if (itemAttributes.IsSetClubType()) 
+                                            {
+                                                Console.WriteLine("                                        ClubType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClubType);
+                                            }
+                                            if (itemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Color);
+                                            }
+                                            if (itemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Compatibility);
+                                            }
+                                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                                            foreach (String compatibleDevices in compatibleDevicesList) 
+                                            { 
+                                                Console.WriteLine("                                        CompatibleDevices");
+                                                Console.WriteLine("                                            {0}", compatibleDevices);
+                                            }	
+                                            if (itemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerHardwareType);
+                                            }
+                                            if (itemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerPlatform);
+                                            }
+                                            if (itemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Connectivity);
+                                            }
+                                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Country);
+                                            }
+                                            if (itemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUManufacturer);
+                                            }
+                                            if (itemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = itemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (itemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Cuisine);
+                                            }
+                                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                                            { 
+                                                Console.WriteLine("                                        DataLinkProtocol");
+                                                Console.WriteLine("                                            {0}", dataLinkProtocol);
+                                            }	
+                                            if (itemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeliveryOption);
+                                            }
+                                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (itemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Department);
+                                            }
+                                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (itemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialColor);
+                                            }
+                                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  itemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                                            {
+                                                Console.WriteLine("                                        DisplayColorSupport");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DisplayColorSupport);
+                                            }
+                                            if (itemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                                            } 
+                                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (itemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDLayers);
+                                            }
+                                            if (itemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDSides);
+                                            }
+                                            if (itemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DPCI);
+                                            }
+                                            if (itemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.EAN);
+                                            }
+                                            if (itemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Edition);
+                                            }
+                                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                                            foreach (String educationalFocus in educationalFocusList) 
+                                            { 
+                                                Console.WriteLine("                                        EducationalFocus");
+                                                Console.WriteLine("                                            {0}", educationalFocus);
+                                            }	
+                                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                                            foreach (String ethnicity in ethnicityList) 
+                                            { 
+                                                Console.WriteLine("                                        Ethnicity");
+                                                Console.WriteLine("                                            {0}", ethnicity);
+                                            }	
+                                            if (itemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ESRBAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (itemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FabricType);
+                                            }
+                                            if (itemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  itemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (itemAttributes.IsSetFilmColorType()) 
+                                            {
+                                                Console.WriteLine("                                        FilmColorType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FilmColorType);
+                                            }
+                                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (itemAttributes.IsSetFlavorName()) 
+                                            {
+                                                Console.WriteLine("                                        FlavorName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FlavorName);
+                                            }
+                                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  itemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                                            foreach (String formFactor in formFactorList) 
+                                            { 
+                                                Console.WriteLine("                                        FormFactor");
+                                                Console.WriteLine("                                            {0}", formFactor);
+                                            }	
+                                            if (itemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GemType);
+                                            }
+                                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        GemTypeSetElement");
+                                                Console.WriteLine("                                            {0}", gemTypeSetElement);
+                                            }	
+                                            List<String> genderList  =  itemAttributes.Gender;
+                                            foreach (String gender in genderList) 
+                                            { 
+                                                Console.WriteLine("                                        Gender");
+                                                Console.WriteLine("                                            {0}", gender);
+                                            }	
+                                            if (itemAttributes.IsSetGenre()) 
+                                            {
+                                                Console.WriteLine("                                        Genre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Genre);
+                                            }
+                                            if (itemAttributes.IsSetGLProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        GLProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GLProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubFlex()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubFlex");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubFlex);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubLoft()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubLoft");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubLoft);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsDescription);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarAttribute);
+                                            }
+                                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickThickness);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (itemAttributes.IsSetHandOrientation()) 
+                                            {
+                                                Console.WriteLine("                                        HandOrientation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HandOrientation);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskCount);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                                            } 
+                                            if (itemAttributes.IsSetHardDiskInterface()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskInterface);
+                                            }
+                                            if (itemAttributes.IsSetHardwarePlatform()) 
+                                            {
+                                                Console.WriteLine("                                        HardwarePlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardwarePlatform);
+                                            }
+                                            if (itemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasAutoFocus);
+                                            }
+                                            if (itemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasBurstMode);
+                                            }
+                                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasInCameraEditing);
+                                            }
+                                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (itemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasSelfTimer);
+                                            }
+                                            if (itemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasTripodMount);
+                                            }
+                                            if (itemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasVideoOut);
+                                            }
+                                            if (itemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasViewfinder);
+                                            }
+                                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HazardousMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HoursOfOperation);
+                                            }
+                                            if (itemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludedSoftware);
+                                            }
+                                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludesMp3Player);
+                                            }
+                                            if (itemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Ingredients);
+                                            }
+                                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        IngredientsSetElement");
+                                                Console.WriteLine("                                            {0}", ingredientsSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", itemAttributes.InstrumentKey);
+                                            }
+                                            List<String> interestList  =  itemAttributes.Interest;
+                                            foreach (String interest in interestList) 
+                                            { 
+                                                Console.WriteLine("                                        Interest");
+                                                Console.WriteLine("                                            {0}", interest);
+                                            }	
+                                            if (itemAttributes.IsSetIsAdultProduct()) 
+                                            {
+                                                Console.WriteLine("                                        IsAdultProduct");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAdultProduct);
+                                            }
+                                            if (itemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAutographed);
+                                            }
+                                            if (itemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ISBN);
+                                            }
+                                            if (itemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsFragile);
+                                            }
+                                            if (itemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsLabCreated);
+                                            }
+                                            if (itemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsMemorabilia);
+                                            }
+                                            if (itemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                                            } 
+                                            if (itemAttributes.IsSetIsPreannounce()) 
+                                            {
+                                                Console.WriteLine("                                        IsPreannounce");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsPreannounce);
+                                            }
+                                            if (itemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IssuesPerYear);
+                                            }
+                                            if (itemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.KeyboardDescription);
+                                            }
+                                            if (itemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Label);
+                                            }
+                                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                                            foreach (String languageName in languageNameList) 
+                                            { 
+                                                Console.WriteLine("                                        LanguageName");
+                                                Console.WriteLine("                                            {0}", languageName);
+                                            }	
+                                            if (itemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = itemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LegalDisclaimer);
+                                            }
+                                            if (itemAttributes.IsSetLensType()) 
+                                            {
+                                                Console.WriteLine("                                        LensType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LensType);
+                                            }
+                                            if (itemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LineVoltage);
+                                            }
+                                            if (itemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = itemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MacroFocusRange);
+                                            }
+                                            if (itemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MagazineType);
+                                            }
+                                            if (itemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MalletHardness);
+                                            }
+                                            if (itemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Manufacturer);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaterialType);
+                                            }
+                                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        MaterialTypeSetElement");
+                                                Console.WriteLine("                                            {0}", materialTypeSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumColorDepth);
+                                            }
+                                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (itemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (itemAttributes.IsSetMediaType()) 
+                                            {
+                                                Console.WriteLine("                                        MediaType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MediaType);
+                                            }
+                                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (itemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalStamp);
+                                            }
+                                            if (itemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalType);
+                                            }
+                                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MiniMovieDescription);
+                                            }
+                                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Model);
+                                            }
+                                            if (itemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModelYear);
+                                            }
+                                            if (itemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModemDescription);
+                                            }
+                                            if (itemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                                            } 
+                                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (itemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MouseDescription);
+                                            }
+                                            if (itemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MPN);
+                                            }
+                                            if (itemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MusicalStyle);
+                                            }
+                                            if (itemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NativeResolution);
+                                            }
+                                            if (itemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Neighborhood);
+                                            }
+                                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfDiscs);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfIssues);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfItems);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfKeys);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPages);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPearls);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStones);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStrings);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfTracks);
+                                            }
+                                            if (itemAttributes.IsSetOperatingSystem()) 
+                                            {
+                                                Console.WriteLine("                                        OperatingSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OperatingSystem);
+                                            }
+                                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalSensorResolution");
+                                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                                            } 
+                                            if (itemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                                            } 
+                                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OutputWattage);
+                                            }
+                                            if (itemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetPackageQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        PackageQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PackageQuantity);
+                                            }
+                                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                                            foreach (String pantLength in pantLengthList) 
+                                            { 
+                                                Console.WriteLine("                                        PantLength");
+                                                Console.WriteLine("                                            {0}", pantLength);
+                                            }	
+                                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                                            foreach (String pantSize in pantSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        PantSize");
+                                                Console.WriteLine("                                            {0}", pantSize);
+                                            }	
+                                            if (itemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlLustre);
+                                            }
+                                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlMinimumColor);
+                                            }
+                                            if (itemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlShape);
+                                            }
+                                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlStringingMethod);
+                                            }
+                                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (itemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlType);
+                                            }
+                                            if (itemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlUniformity);
+                                            }
+                                            if (itemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  itemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (itemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PriceRating);
+                                            }
+                                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                                            foreach (String primaryColor in primaryColorList) 
+                                            { 
+                                                Console.WriteLine("                                        PrimaryColor");
+                                                Console.WriteLine("                                            {0}", primaryColor);
+                                            }	
+                                            if (itemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProcessorCount);
+                                            }
+                                            if (itemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                                            {
+                                                Console.WriteLine("                                        ProductSiteLaunchDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductSiteLaunchDate);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeName()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeName);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeSubcategory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeSubcategory);
+                                            }
+                                            if (itemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PromotionalTag);
+                                            }
+                                            if (itemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PublicationDate);
+                                            }
+                                            if (itemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Publisher);
+                                            }
+                                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (itemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReadingLevel);
+                                            }
+                                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RecorderTrackCount);
+                                            }
+                                            if (itemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionCode);
+                                            }
+                                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionOfOrigin);
+                                            }
+                                            if (itemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReturnPolicy);
+                                            }
+                                            if (itemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableMemory);
+                                            }
+                                            if (itemAttributes.IsSetRemovableStorage()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableStorage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableStorage);
+                                            }
+                                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                                            {
+                                                Console.WriteLine("                                        RequiredVoltageRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RequiredVoltageRange);
+                                            }
+                                            if (itemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ResolutionModes);
+                                            }
+                                            if (itemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RingSize);
+                                            }
+                                            if (itemAttributes.IsSetRunningTime()) 
+                                            {
+                                                Console.WriteLine("                                        RunningTime");
+                                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                                            } 
+                                            if (itemAttributes.IsSetScentName()) 
+                                            {
+                                                Console.WriteLine("                                        ScentName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ScentName);
+                                            }
+                                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (itemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SettingType);
+                                            }
+                                            if (itemAttributes.IsSetShaftMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        ShaftMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ShaftMaterialType);
+                                            }
+                                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                                            foreach (String shoeSize in shoeSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        ShoeSize");
+                                                Console.WriteLine("                                            {0}", shoeSize);
+                                            }	
+                                            if (itemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Size);
+                                            }
+                                            if (itemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SizePerPearl);
+                                            }
+                                            if (itemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SkillLevel);
+                                            }
+                                            if (itemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SKU);
+                                            }
+                                            if (itemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoldInStores);
+                                            }
+                                            if (itemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoundCardDescription);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerCount);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneClarity);
+                                            }
+                                            if (itemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneColor);
+                                            }
+                                            if (itemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneCut);
+                                            }
+                                            if (itemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneShape);
+                                            }
+                                            if (itemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                                            } 
+                                            if (itemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Studio);
+                                            }
+                                            if (itemAttributes.IsSetStyle()) 
+                                            {
+                                                Console.WriteLine("                                        Style");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Style);
+                                            }
+                                            if (itemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                                            {
+                                                Console.WriteLine("                                        SupportedMediaSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SupportedMediaSize);
+                                            }
+                                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SystemMemoryType);
+                                            }
+                                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                                            foreach (String targetBrand in targetBrandList) 
+                                            { 
+                                                Console.WriteLine("                                        TargetBrand");
+                                                Console.WriteLine("                                            {0}", targetBrand);
+                                            }	
+                                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TellingPageIndicator);
+                                            }
+                                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Title);
+                                            }
+                                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalParallelPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSerialPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSBPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", itemAttributes.UPC);
+                                            }
+                                            if (itemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDenomination);
+                                            }
+                                            if (itemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDescription);
+                                            }
+                                            if (itemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Warranty);
+                                            }
+                                            if (itemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WatchMovementType);
+                                            }
+                                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (itemAttributes.IsSetWEEETaxValue()) 
+                                            {
+                                                Console.WriteLine("                                        WEEETaxValue");
+                                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                                if (WEEETaxValue.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.Amount);
+                                                }
+                                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.CurrencyCode);
+                                                }
+                                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetMerchantItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    MerchantItemAttributes");
+                                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                                            List<String> actorList  =  merchantItemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = merchantItemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  merchantItemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AspectRatio);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyInstructions);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  merchantItemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (merchantItemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BackFinding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BandMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesIncluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                                            } 
+                                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BezelMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Binding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Brand);
+                                            }
+                                            if (merchantItemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CatalogNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ChainType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClaspType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClothingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Color);
+                                            }
+                                            if (merchantItemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Compatibility);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerHardwareType);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerPlatform);
+                                            }
+                                            if (merchantItemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Connectivity);
+                                            }
+                                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Country);
+                                            }
+                                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        CountryOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CountryOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUManufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (merchantItemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Cuisine);
+                                            }
+                                            if (merchantItemAttributes.IsSetCustomizable()) 
+                                            {
+                                                Console.WriteLine("                                        Customizable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Customizable);
+                                            }
+                                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeliveryOption);
+                                            }
+                                            if (merchantItemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Department);
+                                            }
+                                            if (merchantItemAttributes.IsSetDescription()) 
+                                            {
+                                                Console.WriteLine("                                        Description");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Description);
+                                            }
+                                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  merchantItemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDLayers);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDSides);
+                                            }
+                                            if (merchantItemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DPCI);
+                                            }
+                                            if (merchantItemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.EAN);
+                                            }
+                                            if (merchantItemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Edition);
+                                            }
+                                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ESRBAgeRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FabricType);
+                                            }
+                                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  merchantItemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  merchantItemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                                            {
+                                                Console.WriteLine("                                        FixedShippingCharge");
+                                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                                if (fixedShippingCharge.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.Amount);
+                                                }
+                                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.CurrencyCode);
+                                                }
+                                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GemType);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarAttribute);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickThickness);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HardDiskCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasAutoFocus);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasBurstMode);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasInCameraEditing);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasSelfTimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasTripodMount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasVideoOut);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasViewfinder);
+                                            }
+                                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HazardousMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HoursOfOperation);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludedSoftware);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludesMp3Player);
+                                            }
+                                            if (merchantItemAttributes.IsSetIndications()) 
+                                            {
+                                                Console.WriteLine("                                        Indications");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Indications);
+                                            }
+                                            if (merchantItemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Ingredients);
+                                            }
+                                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.InstrumentKey);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsAutographed);
+                                            }
+                                            if (merchantItemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ISBN);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsFragile);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsLabCreated);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsMemorabilia);
+                                            }
+                                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                                            } 
+                                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IssuesPerYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.KeyboardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Label);
+                                            }
+                                            if (merchantItemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = merchantItemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LegalDisclaimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LineVoltage);
+                                            }
+                                            if (merchantItemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MacroFocusRange);
+                                            }
+                                            if (merchantItemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MagazineType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MalletHardness);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Manufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumColorDepth);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalStamp);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MiniMovieDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Model);
+                                            }
+                                            if (merchantItemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModelYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModemDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MouseDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MPN);
+                                            }
+                                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MusicalStyle);
+                                            }
+                                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NativeResolution);
+                                            }
+                                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Neighborhood);
+                                            }
+                                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfDiscs);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfIssues);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfItems);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfKeys);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPages);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPearls);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStones);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStrings);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfTracks);
+                                            }
+                                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                                            } 
+                                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OutputWattage);
+                                            }
+                                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlLustre);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlMinimumColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlStringingMethod);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlType);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlUniformity);
+                                            }
+                                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  merchantItemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (merchantItemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PriceRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProcessorCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProductGroup);
+                                            }
+                                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PromotionalTag);
+                                            }
+                                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PublicationDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Publisher);
+                                            }
+                                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                                            foreach (String purchasingChannel in purchasingChannelList) 
+                                            { 
+                                                Console.WriteLine("                                        PurchasingChannel");
+                                                Console.WriteLine("                                            {0}", purchasingChannel);
+                                            }	
+                                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReadingLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RecorderTrackCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionCode);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReleaseDate);
+                                            }
+                                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RemovableMemory);
+                                            }
+                                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ResolutionModes);
+                                            }
+                                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReturnPolicy);
+                                            }
+                                            if (merchantItemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                                            {
+                                                Console.WriteLine("                                        SafetyWarning");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SafetyWarning);
+                                            }
+                                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                                            {
+                                                Console.WriteLine("                                        SalesRestriction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SalesRestriction);
+                                            }
+                                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SettingType);
+                                            }
+                                            if (merchantItemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Size);
+                                            }
+                                            if (merchantItemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SKU);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoldInStores);
+                                            }
+                                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SizePerPearl);
+                                            }
+                                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SkillLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoundCardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneClarity);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneCut);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Studio);
+                                            }
+                                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SystemMemoryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TellingPageIndicator);
+                                            }
+                                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Title);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalParallelPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSerialPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSBPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.UPC);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDenomination);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                                            {
+                                                Console.WriteLine("                                        VendorRebate");
+                                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                                if (vendorRebate.IsSetType()) 
+                                                {
+                                                    Console.WriteLine("                                            Type");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.Type);
+                                                }
+                                                if (vendorRebate.IsSetStartDate()) 
+                                                {
+                                                    Console.WriteLine("                                            StartDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.StartDate);
+                                                }
+                                                if (vendorRebate.IsSetEndDate()) 
+                                                {
+                                                    Console.WriteLine("                                            EndDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.EndDate);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Warranty);
+                                            }
+                                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WatchMovementType);
+                                            }
+                                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                                            {
+                                                Console.WriteLine("                                        WebsiteBuyability");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WebsiteBuyability);
+                                            }
+                                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetCollections()) 
+                                        {
+                                            Console.WriteLine("                                    Collections");
+                                            Collections  collections = item.Collections;
+                                            List<CollectionsCollection> collectionList = collections.Collection;
+                                            foreach (CollectionsCollection collection in collectionList) 
+                                            {
+                                                Console.WriteLine("                                        Collection");
+                                                if (collection.IsSetCollectionSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionSummary");
+                                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestListPrice");
+                                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                                        if (lowestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.Amount);
+                                                        }
+                                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.CurrencyCode);
+                                                        }
+                                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestListPrice");
+                                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                                        if (highestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.Amount);
+                                                        }
+                                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.CurrencyCode);
+                                                        }
+                                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestSalePrice");
+                                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                                        if (lowestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.Amount);
+                                                        }
+                                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestSalePrice");
+                                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                                        if (highestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.Amount);
+                                                        }
+                                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (collection.IsSetCollectionParent()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionParent");
+                                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                                    if (collectionParent.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.ASIN);
+                                                    }
+                                                    if (collectionParent.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.Title);
+                                                    }
+                                                } 
+                                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionItem");
+                                                    if (collectionItem.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.ASIN);
+                                                    }
+                                                    if (collectionItem.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.Title);
+                                                    }
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSubjects()) 
+                                        {
+                                            Console.WriteLine("                                    Subjects");
+                                            Subjects  subjects = item.Subjects;
+                                            List<String> subjectList  =  subjects.Subject;
+                                            foreach (String subject in subjectList) 
+                                            { 
+                                                Console.WriteLine("                                        Subject");
+                                                Console.WriteLine("                                            {0}", subject);
+                                            }	
+                                        } 
+                                        if (item.IsSetOfferSummary()) 
+                                        {
+                                            Console.WriteLine("                                    OfferSummary");
+                                            OfferSummary  offerSummary = item.OfferSummary;
+                                            if (offerSummary.IsSetLowestNewPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestNewPrice");
+                                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                                if (lowestNewPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.Amount);
+                                                }
+                                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.CurrencyCode);
+                                                }
+                                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestUsedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestUsedPrice");
+                                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                                if (lowestUsedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.Amount);
+                                                }
+                                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.CurrencyCode);
+                                                }
+                                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestCollectiblePrice");
+                                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.Amount);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestRefurbishedPrice");
+                                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.Amount);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetTotalNew()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNew");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalNew);
+                                            }
+                                            if (offerSummary.IsSetTotalUsed()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUsed");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalUsed);
+                                            }
+                                            if (offerSummary.IsSetTotalCollectible()) 
+                                            {
+                                                Console.WriteLine("                                        TotalCollectible");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalCollectible);
+                                            }
+                                            if (offerSummary.IsSetTotalRefurbished()) 
+                                            {
+                                                Console.WriteLine("                                        TotalRefurbished");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalRefurbished);
+                                            }
+                                        } 
+                                        if (item.IsSetOffers()) 
+                                        {
+                                            Console.WriteLine("                                    Offers");
+                                            Offers  offers = item.Offers;
+                                            if (offers.IsSetTotalOffers()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOffers");
+                                                Console.WriteLine("                                            {0}", offers.TotalOffers);
+                                            }
+                                            if (offers.IsSetTotalOfferPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOfferPages");
+                                                Console.WriteLine("                                            {0}", offers.TotalOfferPages);
+                                            }
+                                            List<Offer> offerList = offers.Offer;
+                                            foreach (Offer offer in offerList) 
+                                            {
+                                                Console.WriteLine("                                        Offer");
+                                                if (offer.IsSetMerchant()) 
+                                                {
+                                                    Console.WriteLine("                                            Merchant");
+                                                    Merchant  merchant = offer.Merchant;
+                                                    if (merchant.IsSetMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantId");
+                                                        Console.WriteLine("                                                    {0}", merchant.MerchantId);
+                                                    }
+                                                    if (merchant.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", merchant.Name);
+                                                    }
+                                                    if (merchant.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", merchant.GlancePage);
+                                                    }
+                                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", merchant.AverageFeedbackRating);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedback);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedbackPages);
+                                                    }
+                                                } 
+                                                if (offer.IsSetSeller()) 
+                                                {
+                                                    Console.WriteLine("                                            Seller");
+                                                    Seller  seller = offer.Seller;
+                                                    if (seller.IsSetSellerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerId");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerId);
+                                                    }
+                                                    if (seller.IsSetSellerName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerName);
+                                                    }
+                                                    if (seller.IsSetSellerLegalName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerLegalName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerLegalName);
+                                                    }
+                                                    if (seller.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", seller.Nickname);
+                                                    }
+                                                    if (seller.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", seller.GlancePage);
+                                                    }
+                                                    if (seller.IsSetAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                About");
+                                                        Console.WriteLine("                                                    {0}", seller.About);
+                                                    }
+                                                    if (seller.IsSetMoreAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                MoreAbout");
+                                                        Console.WriteLine("                                                    {0}", seller.MoreAbout);
+                                                    }
+                                                    if (seller.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        SellerLocation  location = seller.Location;
+                                                        if (location.IsSetUserDefinedLocation()) 
+                                                        {
+                                                            Console.WriteLine("                                                    UserDefinedLocation");
+                                                            Console.WriteLine("                                                        {0}", location.UserDefinedLocation);
+                                                        }
+                                                        if (location.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", location.City);
+                                                        }
+                                                        if (location.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", location.State);
+                                                        }
+                                                        if (location.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", location.Country);
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", seller.AverageFeedbackRating);
+                                                    }
+                                                    if (seller.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedback);
+                                                    }
+                                                    if (seller.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedbackPages);
+                                                    }
+                                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedbackSummary");
+                                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                                        {
+                                                            Console.WriteLine("                                                    FeedbackDateRange");
+                                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                                            {
+                                                                Console.WriteLine("                                                        SellerFeedbackRating");
+                                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Count");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Count);
+                                                                }
+                                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Percentage");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Percentage);
+                                                                }
+                                                            }
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetSellerFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedback");
+                                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                                        foreach (Feedback feedback in feedbackList) 
+                                                        {
+                                                            Console.WriteLine("                                                    Feedback");
+                                                            if (feedback.IsSetRating()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Rating");
+                                                                Console.WriteLine("                                                            {0}", feedback.Rating);
+                                                            }
+                                                            if (feedback.IsSetComment()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Comment");
+                                                                Console.WriteLine("                                                            {0}", feedback.Comment);
+                                                            }
+                                                            if (feedback.IsSetDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Date");
+                                                                Console.WriteLine("                                                            {0}", feedback.Date);
+                                                            }
+                                                            if (feedback.IsSetRatedBy()) 
+                                                            {
+                                                                Console.WriteLine("                                                        RatedBy");
+                                                                Console.WriteLine("                                                            {0}", feedback.RatedBy);
+                                                            }
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetOfferAttributes()) 
+                                                {
+                                                    Console.WriteLine("                                            OfferAttributes");
+                                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                                    if (offerAttributes.IsSetCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                Condition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.Condition);
+                                                    }
+                                                    if (offerAttributes.IsSetSubCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                SubCondition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.SubCondition);
+                                                    }
+                                                    if (offerAttributes.IsSetConditionNote()) 
+                                                    {
+                                                        Console.WriteLine("                                                ConditionNote");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.ConditionNote);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipExpedited");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipExpedited);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipInternational");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipInternational);
+                                                    }
+                                                } 
+                                                List<OfferListing> offerListingList = offer.OfferListing;
+                                                foreach (OfferListing offerListing in offerListingList) 
+                                                {
+                                                    Console.WriteLine("                                            OfferListing");
+                                                    if (offerListing.IsSetOfferListingId()) 
+                                                    {
+                                                        Console.WriteLine("                                                OfferListingId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.OfferListingId);
+                                                    }
+                                                    if (offerListing.IsSetExchangeId()) 
+                                                    {
+                                                        Console.WriteLine("                                                ExchangeId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ExchangeId);
+                                                    }
+                                                    if (offerListing.IsSetPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                Price");
+                                                        Price  price = offerListing.Price;
+                                                        if (price.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", price.Amount);
+                                                        }
+                                                        if (price.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", price.CurrencyCode);
+                                                        }
+                                                        if (price.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", price.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalePrice");
+                                                        Price  salePrice = offerListing.SalePrice;
+                                                        if (salePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", salePrice.Amount);
+                                                        }
+                                                        if (salePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", salePrice.CurrencyCode);
+                                                        }
+                                                        if (salePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", salePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetAmountSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                AmountSaved");
+                                                        Price  amountSaved = offerListing.AmountSaved;
+                                                        if (amountSaved.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.Amount);
+                                                        }
+                                                        if (amountSaved.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.CurrencyCode);
+                                                        }
+                                                        if (amountSaved.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetPercentageSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentageSaved");
+                                                        Console.WriteLine("                                                    {0}", offerListing.PercentageSaved);
+                                                    }
+                                                    if (offerListing.IsSetAvailability()) 
+                                                    {
+                                                        Console.WriteLine("                                                Availability");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Availability);
+                                                    }
+                                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                                    {
+                                                        Console.WriteLine("                                                AvailabilityAttributes");
+                                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    AvailabilityType");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.AvailabilityType);
+                                                        }
+                                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsPreorder");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.IsPreorder);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MinimumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MinimumHours);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MaximumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MaximumHours);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Quantity);
+                                                    }
+                                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreAddress");
+                                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                                        if (ISPUStoreAddress.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Name);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address1");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address1);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address2");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address2);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address3");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address3);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.City);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.State);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    PostalCode");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.PostalCode);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Country);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetISPUStoreHours()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreHours");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ISPUStoreHours);
+                                                    }
+                                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsEligibleForSuperSaverShipping");
+                                                        Console.WriteLine("                                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                                    }
+                                                    if (offerListing.IsSetSalesRestriction()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalesRestriction");
+                                                        Console.WriteLine("                                                    {0}", offerListing.SalesRestriction);
+                                                    }
+                                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                                    {
+                                                        Console.WriteLine("                                                ShippingCharge");
+                                                        if (shippingCharge.IsSetShippingType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingType");
+                                                            Console.WriteLine("                                                        {0}", shippingCharge.ShippingType);
+                                                        }
+                                                        if (shippingCharge.IsSetShippingPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingPrice");
+                                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                                            if (shippingPrice.IsSetAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Amount");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.Amount);
+                                                            }
+                                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CurrencyCode");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.CurrencyCode);
+                                                            }
+                                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                                            {
+                                                                Console.WriteLine("                                                        FormattedPrice");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.FormattedPrice);
+                                                            }
+                                                        } 
+                                                    }
+                                                }
+                                                if (offer.IsSetLoyaltyPoints()) 
+                                                {
+                                                    Console.WriteLine("                                            LoyaltyPoints");
+                                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                                    if (loyaltyPoints.IsSetPoints()) 
+                                                    {
+                                                        Console.WriteLine("                                                Points");
+                                                        Console.WriteLine("                                                    {0}", loyaltyPoints.Points);
+                                                    }
+                                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                                    {
+                                                        Console.WriteLine("                                                TypicalRedemptionValue");
+                                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.Amount);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetPromotions()) 
+                                                {
+                                                    Console.WriteLine("                                            Promotions");
+                                                    Promotions  promotions = offer.Promotions;
+                                                    List<Promotion> promotionList = promotions.Promotion;
+                                                    foreach (Promotion promotion in promotionList) 
+                                                    {
+                                                        Console.WriteLine("                                                Promotion");
+                                                        if (promotion.IsSetSummary()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Summary");
+                                                            PromotionSummary  summary = promotion.Summary;
+                                                            if (summary.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", summary.PromotionId);
+                                                            }
+                                                            if (summary.IsSetCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Category");
+                                                                Console.WriteLine("                                                            {0}", summary.Category);
+                                                            }
+                                                            if (summary.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", summary.StartDate);
+                                                            }
+                                                            if (summary.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", summary.EndDate);
+                                                            }
+                                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirementDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.EligibilityRequirementDescription);
+                                                            }
+                                                            if (summary.IsSetBenefitDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        BenefitDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.BenefitDescription);
+                                                            }
+                                                            if (summary.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", summary.TermsAndConditions);
+                                                            }
+                                                        } 
+                                                        if (promotion.IsSetDetails()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Details");
+                                                            PromotionDetails  details = promotion.Details;
+                                                            if (details.IsSetMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantId);
+                                                            }
+                                                            if (details.IsSetOwningMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        OwningMerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.OwningMerchantId);
+                                                            }
+                                                            if (details.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionId);
+                                                            }
+                                                            if (details.IsSetPromotionCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionCategory");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionCategory);
+                                                            }
+                                                            if (details.IsSetMerchantPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantPromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantPromotionId);
+                                                            }
+                                                            if (details.IsSetGroupClaimCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        GroupClaimCode");
+                                                                Console.WriteLine("                                                            {0}", details.GroupClaimCode);
+                                                            }
+                                                            if (details.IsSetCouponCombinationType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CouponCombinationType");
+                                                                Console.WriteLine("                                                            {0}", details.CouponCombinationType);
+                                                            }
+                                                            if (details.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", details.StartDate);
+                                                            }
+                                                            if (details.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", details.EndDate);
+                                                            }
+                                                            if (details.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", details.TermsAndConditions);
+                                                            }
+                                                            if (details.IsSetEligibilityRequirements()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirements");
+                                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            EligibilityRequirement");
+                                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                EligibilityRequirementType");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.Quantity);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                CurrencyAmount");
+                                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                                        if (currencyAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.Amount);
+                                                                        }
+                                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.CurrencyCode);
+                                                                        }
+                                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetBenefits()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Benefits");
+                                                                PromotionBenefits  benefits = details.Benefits;
+                                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Benefit");
+                                                                    if (benefit.IsSetBenefitType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                BenefitType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.BenefitType);
+                                                                    }
+                                                                    if (benefit.IsSetComponentType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                ComponentType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.ComponentType);
+                                                                    }
+                                                                    if (benefit.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.Quantity);
+                                                                    }
+                                                                    if (benefit.IsSetPercentOff()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                PercentOff");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.PercentOff);
+                                                                    }
+                                                                    if (benefit.IsSetFixedAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                FixedAmount");
+                                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                                        if (fixedAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.Amount);
+                                                                        }
+                                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.CurrencyCode);
+                                                                        }
+                                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                    if (benefit.IsSetCeiling()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Ceiling");
+                                                                        Price  ceiling = benefit.Ceiling;
+                                                                        if (ceiling.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.Amount);
+                                                                        }
+                                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.CurrencyCode);
+                                                                        }
+                                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetItemApplicability()) 
+                                                            {
+                                                                Console.WriteLine("                                                        ItemApplicability");
+                                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                                if (itemApplicability.IsSetASIN()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            ASIN");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.ASIN);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInBenefitSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInBenefitSet);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInEligibilityRequirementSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                                }
+                                                            } 
+                                                            if (details.IsSetMerchandisingMessage()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchandisingMessage");
+                                                                Console.WriteLine("                                                            {0}", details.MerchandisingMessage);
+                                                            }
+                                                        } 
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetVariationSummary()) 
+                                        {
+                                            Console.WriteLine("                                    VariationSummary");
+                                            VariationSummary  variationSummary = item.VariationSummary;
+                                            if (variationSummary.IsSetLowestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestPrice");
+                                                Price  lowestPrice = variationSummary.LowestPrice;
+                                                if (lowestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.Amount);
+                                                }
+                                                if (lowestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.CurrencyCode);
+                                                }
+                                                if (lowestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestPrice");
+                                                Price  highestPrice = variationSummary.HighestPrice;
+                                                if (highestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestPrice.Amount);
+                                                }
+                                                if (highestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestPrice.CurrencyCode);
+                                                }
+                                                if (highestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetLowestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestSalePrice");
+                                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                                if (lowestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.Amount);
+                                                }
+                                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.CurrencyCode);
+                                                }
+                                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestSalePrice");
+                                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                                if (highestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.Amount);
+                                                }
+                                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.CurrencyCode);
+                                                }
+                                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetSingleMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        SingleMerchantId");
+                                                Console.WriteLine("                                            {0}", variationSummary.SingleMerchantId);
+                                            }
+                                        } 
+                                        if (item.IsSetVariations()) 
+                                        {
+                                            Console.WriteLine("                                    Variations");
+                                            Variations  variations = item.Variations;
+                                            if (variations.IsSetTotalVariations()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariations");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariations);
+                                            }
+                                            if (variations.IsSetTotalVariationPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariationPages");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariationPages);
+                                            }
+                                            if (variations.IsSetVariationDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDimensions");
+                                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                                foreach (String variationDimension in variationDimensionList) 
+                                                { 
+                                                    Console.WriteLine("                                            VariationDimension");
+                                                    Console.WriteLine("                                                {0}", variationDimension);
+                                                }	
+                                            } 
+                                        } 
+                                        if (item.IsSetCustomerReviews()) 
+                                        {
+                                            Console.WriteLine("                                    CustomerReviews");
+                                            CustomerReviews  customerReviews = item.CustomerReviews;
+                                            if (customerReviews.IsSetAverageRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageRating");
+                                                Console.WriteLine("                                            {0}", customerReviews.AverageRating);
+                                            }
+                                            if (customerReviews.IsSetTotalReviews()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviews");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviews);
+                                            }
+                                            if (customerReviews.IsSetTotalReviewPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviewPages");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviewPages);
+                                            }
+                                            List<Review> reviewList = customerReviews.Review;
+                                            foreach (Review review in reviewList) 
+                                            {
+                                                Console.WriteLine("                                        Review");
+                                                if (review.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", review.ASIN);
+                                                }
+                                                if (review.IsSetRating()) 
+                                                {
+                                                    Console.WriteLine("                                            Rating");
+                                                    Console.WriteLine("                                                {0}", review.Rating);
+                                                }
+                                                if (review.IsSetHelpfulVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            HelpfulVotes");
+                                                    Console.WriteLine("                                                {0}", review.HelpfulVotes);
+                                                }
+                                                if (review.IsSetCustomerId()) 
+                                                {
+                                                    Console.WriteLine("                                            CustomerId");
+                                                    Console.WriteLine("                                                {0}", review.CustomerId);
+                                                }
+                                                if (review.IsSetReviewer()) 
+                                                {
+                                                    Console.WriteLine("                                            Reviewer");
+                                                    Reviewer  reviewer = review.Reviewer;
+                                                    if (reviewer.IsSetCustomerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                CustomerId");
+                                                        Console.WriteLine("                                                    {0}", reviewer.CustomerId);
+                                                    }
+                                                    if (reviewer.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Name);
+                                                    }
+                                                    if (reviewer.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Nickname);
+                                                    }
+                                                    if (reviewer.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Location);
+                                                    }
+                                                } 
+                                                if (review.IsSetTotalVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            TotalVotes");
+                                                    Console.WriteLine("                                                {0}", review.TotalVotes);
+                                                }
+                                                if (review.IsSetDate()) 
+                                                {
+                                                    Console.WriteLine("                                            Date");
+                                                    Console.WriteLine("                                                {0}", review.Date);
+                                                }
+                                                if (review.IsSetSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            Summary");
+                                                    Console.WriteLine("                                                {0}", review.Summary);
+                                                }
+                                                if (review.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", review.Content);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetEditorialReviews()) 
+                                        {
+                                            Console.WriteLine("                                    EditorialReviews");
+                                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                                            {
+                                                Console.WriteLine("                                        EditorialReview");
+                                                if (editorialReview.IsSetSource()) 
+                                                {
+                                                    Console.WriteLine("                                            Source");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Source);
+                                                }
+                                                if (editorialReview.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Content);
+                                                }
+                                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                                {
+                                                    Console.WriteLine("                                            IsLinkSuppressed");
+                                                    Console.WriteLine("                                                {0}", editorialReview.IsLinkSuppressed);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSimilarProducts()) 
+                                        {
+                                            Console.WriteLine("                                    SimilarProducts");
+                                            SimilarProducts  similarProducts = item.SimilarProducts;
+                                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                                            foreach (SimilarProduct similarProduct in similarProductList) 
+                                            {
+                                                Console.WriteLine("                                        SimilarProduct");
+                                                if (similarProduct.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", similarProduct.ASIN);
+                                                }
+                                                if (similarProduct.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", similarProduct.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetAccessories()) 
+                                        {
+                                            Console.WriteLine("                                    Accessories");
+                                            Accessories  accessories = item.Accessories;
+                                            List<Accessory> accessoryList = accessories.Accessory;
+                                            foreach (Accessory accessory in accessoryList) 
+                                            {
+                                                Console.WriteLine("                                        Accessory");
+                                                if (accessory.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", accessory.ASIN);
+                                                }
+                                                if (accessory.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", accessory.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetTracks()) 
+                                        {
+                                            Console.WriteLine("                                    Tracks");
+                                            Tracks  tracks = item.Tracks;
+                                            List<Disc> discList = tracks.Disc;
+                                            foreach (Disc disc in discList) 
+                                            {
+                                                Console.WriteLine("                                        Disc");
+                                                List<Track> trackList = disc.Track;
+                                                foreach (Track track in trackList) 
+                                                {
+                                                    Console.WriteLine("                                            Track");
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetBrowseNodes()) 
+                                        {
+                                            Console.WriteLine("                                    BrowseNodes");
+                                            BrowseNodes  browseNodes = item.BrowseNodes;
+                                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                                            foreach (BrowseNode browseNode in browseNodeList) 
+                                            {
+                                                Console.WriteLine("                                        BrowseNode");
+                                                if (browseNode.IsSetBrowseNodeId()) 
+                                                {
+                                                    Console.WriteLine("                                            BrowseNodeId");
+                                                    Console.WriteLine("                                                {0}", browseNode.BrowseNodeId);
+                                                }
+                                                if (browseNode.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", browseNode.Name);
+                                                }
+                                                if (browseNode.IsSetIsCategoryRoot()) 
+                                                {
+                                                    Console.WriteLine("                                            IsCategoryRoot");
+                                                    Console.WriteLine("                                                {0}", browseNode.IsCategoryRoot);
+                                                }
+                                                if (browseNode.IsSetProperties()) 
+                                                {
+                                                    Console.WriteLine("                                            Properties");
+                                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                                    List<Property> propertyList = properties.Property;
+                                                    foreach (Property property in propertyList) 
+                                                    {
+                                                        Console.WriteLine("                                                Property");
+                                                        if (property.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", property.Name);
+                                                        }
+                                                        if (property.IsSetValue()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Value");
+                                                            Console.WriteLine("                                                        {0}", property.Value);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetChildren()) 
+                                                {
+                                                    Console.WriteLine("                                            Children");
+                                                    BrowseNodeChildren  children = browseNode.Children;
+                                                } 
+                                                if (browseNode.IsSetAncestors()) 
+                                                {
+                                                    Console.WriteLine("                                            Ancestors");
+                                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                                } 
+                                                if (browseNode.IsSetTopSellers()) 
+                                                {
+                                                    Console.WriteLine("                                            TopSellers");
+                                                    TopSellers  topSellers = browseNode.TopSellers;
+                                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                                    foreach (TopSeller topSeller in topSellerList) 
+                                                    {
+                                                        Console.WriteLine("                                                TopSeller");
+                                                        if (topSeller.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", topSeller.ASIN);
+                                                        }
+                                                        if (topSeller.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", topSeller.Title);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetNewReleases()) 
+                                                {
+                                                    Console.WriteLine("                                            NewReleases");
+                                                    NewReleases  newReleases = browseNode.NewReleases;
+                                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                                    foreach (NewRelease newRelease in newReleaseList) 
+                                                    {
+                                                        Console.WriteLine("                                                NewRelease");
+                                                        if (newRelease.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", newRelease.ASIN);
+                                                        }
+                                                        if (newRelease.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", newRelease.Title);
+                                                        }
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetSearchInside()) 
+                                        {
+                                            Console.WriteLine("                                    SearchInside");
+                                            SearchInside  searchInside = item.SearchInside;
+                                            if (searchInside.IsSetTotalExcerpts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExcerpts");
+                                                Console.WriteLine("                                            {0}", searchInside.TotalExcerpts);
+                                            }
+                                            if (searchInside.IsSetExcerpt()) 
+                                            {
+                                                Console.WriteLine("                                        Excerpt");
+                                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                                if (excerpt.IsSetChecksum()) 
+                                                {
+                                                    Console.WriteLine("                                            Checksum");
+                                                    Console.WriteLine("                                                {0}", excerpt.Checksum);
+                                                }
+                                                if (excerpt.IsSetPageType()) 
+                                                {
+                                                    Console.WriteLine("                                            PageType");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageType);
+                                                }
+                                            } 
+                                        } 
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentSearchSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentSearchSample.cs
new file mode 100644
index 0000000..e951c7b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/CustomerContentSearchSample.cs
@@ -0,0 +1,5105 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Customer Content Search  Samples
+    /// </summary>
+    public class CustomerContentSearchSample
+    {
+    
+                                                 
+        /// <summary>
+        /// 
+        /// <p/>
+        /// For a given customer Email address or name, the CustomerContentSearch
+        /// operation returns matching customer IDs, names, nicknames, and residence
+        /// information (city, state, and country). In general, supplying an Email
+        /// address returns unique results whereas supplying a name more often
+        /// returns multiple results.
+        /// <p/>
+        /// Often you use CustomerContentSearch to find a customer ID that you can
+        /// use in the CustomerContentLookup operation, which returns more
+        /// extensive customer information.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">CustomerContentSearch request</param>
+        public static void InvokeCustomerContentSearch(AmazonECS service, params CustomerContentSearchRequest [] request) 
+        {
+            try 
+            {
+                CustomerContentSearchResponse response = service.CustomerContentSearch(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        CustomerContentSearchResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Customers> customersList = response.Customers;
+                foreach (Customers customers in customersList) 
+                {
+                    Console.WriteLine("            Customers");
+                    if (customers.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", customers.TotalResults);
+                    }
+                    if (customers.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", customers.TotalPages);
+                    }
+                    List<Customer> customerList = customers.Customer;
+                    foreach (Customer customer in customerList) 
+                    {
+                        Console.WriteLine("                Customer");
+                        if (customer.IsSetCustomerId()) 
+                        {
+                            Console.WriteLine("                    CustomerId");
+                            Console.WriteLine("                        {0}", customer.CustomerId);
+                        }
+                        if (customer.IsSetNickname()) 
+                        {
+                            Console.WriteLine("                    Nickname");
+                            Console.WriteLine("                        {0}", customer.Nickname);
+                        }
+                        if (customer.IsSetBirthday()) 
+                        {
+                            Console.WriteLine("                    Birthday");
+                            Console.WriteLine("                        {0}", customer.Birthday);
+                        }
+                        if (customer.IsSetWishListId()) 
+                        {
+                            Console.WriteLine("                    WishListId");
+                            Console.WriteLine("                        {0}", customer.WishListId);
+                        }
+                        if (customer.IsSetLocation()) 
+                        {
+                            Console.WriteLine("                    Location");
+                            CustomerLocation  location = customer.Location;
+                            if (location.IsSetUserDefinedLocation()) 
+                            {
+                                Console.WriteLine("                        UserDefinedLocation");
+                                Console.WriteLine("                            {0}", location.UserDefinedLocation);
+                            }
+                            if (location.IsSetCity()) 
+                            {
+                                Console.WriteLine("                        City");
+                                Console.WriteLine("                            {0}", location.City);
+                            }
+                            if (location.IsSetState()) 
+                            {
+                                Console.WriteLine("                        State");
+                                Console.WriteLine("                            {0}", location.State);
+                            }
+                            if (location.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", location.Country);
+                            }
+                        } 
+                        List<CustomerReviews> customerReviewsList = customer.CustomerReviews;
+                        foreach (CustomerReviews customerReviews in customerReviewsList) 
+                        {
+                            Console.WriteLine("                    CustomerReviews");
+                            if (customerReviews.IsSetAverageRating()) 
+                            {
+                                Console.WriteLine("                        AverageRating");
+                                Console.WriteLine("                            {0}", customerReviews.AverageRating);
+                            }
+                            if (customerReviews.IsSetTotalReviews()) 
+                            {
+                                Console.WriteLine("                        TotalReviews");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviews);
+                            }
+                            if (customerReviews.IsSetTotalReviewPages()) 
+                            {
+                                Console.WriteLine("                        TotalReviewPages");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviewPages);
+                            }
+                            List<Review> reviewList = customerReviews.Review;
+                            foreach (Review review in reviewList) 
+                            {
+                                Console.WriteLine("                        Review");
+                                if (review.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", review.ASIN);
+                                }
+                                if (review.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", review.Rating);
+                                }
+                                if (review.IsSetHelpfulVotes()) 
+                                {
+                                    Console.WriteLine("                            HelpfulVotes");
+                                    Console.WriteLine("                                {0}", review.HelpfulVotes);
+                                }
+                                if (review.IsSetCustomerId()) 
+                                {
+                                    Console.WriteLine("                            CustomerId");
+                                    Console.WriteLine("                                {0}", review.CustomerId);
+                                }
+                                if (review.IsSetReviewer()) 
+                                {
+                                    Console.WriteLine("                            Reviewer");
+                                    Reviewer  reviewer = review.Reviewer;
+                                    if (reviewer.IsSetCustomerId()) 
+                                    {
+                                        Console.WriteLine("                                CustomerId");
+                                        Console.WriteLine("                                    {0}", reviewer.CustomerId);
+                                    }
+                                    if (reviewer.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", reviewer.Name);
+                                    }
+                                    if (reviewer.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", reviewer.Nickname);
+                                    }
+                                    if (reviewer.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        Console.WriteLine("                                    {0}", reviewer.Location);
+                                    }
+                                } 
+                                if (review.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", review.TotalVotes);
+                                }
+                                if (review.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", review.Date);
+                                }
+                                if (review.IsSetSummary()) 
+                                {
+                                    Console.WriteLine("                            Summary");
+                                    Console.WriteLine("                                {0}", review.Summary);
+                                }
+                                if (review.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", review.Content);
+                                }
+                            }
+                        }
+                        if (customer.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = customer.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetItem()) 
+                                    {
+                                        Console.WriteLine("                                Item");
+                                        Item  item = taggedItems.Item;
+                                        if (item.IsSetAlternateVersions()) 
+                                        {
+                                            Console.WriteLine("                                    AlternateVersions");
+                                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                                            {
+                                                Console.WriteLine("                                        AlternateVersion");
+                                                if (alternateVersion.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.ASIN);
+                                                }
+                                                if (alternateVersion.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Title);
+                                                }
+                                                if (alternateVersion.IsSetBinding()) 
+                                                {
+                                                    Console.WriteLine("                                            Binding");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Binding);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", item.ASIN);
+                                        }
+                                        if (item.IsSetParentASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ParentASIN");
+                                            Console.WriteLine("                                        {0}", item.ParentASIN);
+                                        }
+                                        if (item.IsSetDetailPageURL()) 
+                                        {
+                                            Console.WriteLine("                                    DetailPageURL");
+                                            Console.WriteLine("                                        {0}", item.DetailPageURL);
+                                        }
+                                        if (item.IsSetSalesRank()) 
+                                        {
+                                            Console.WriteLine("                                    SalesRank");
+                                            Console.WriteLine("                                        {0}", item.SalesRank);
+                                        }
+                                        if (item.IsSetSmallImage()) 
+                                        {
+                                            Console.WriteLine("                                    SmallImage");
+                                            Image  smallImage = item.SmallImage;
+                                            if (smallImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", smallImage.URL);
+                                            }
+                                            if (smallImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = smallImage.Height;
+                                            } 
+                                            if (smallImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = smallImage.Width;
+                                            } 
+                                            if (smallImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", smallImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetMediumImage()) 
+                                        {
+                                            Console.WriteLine("                                    MediumImage");
+                                            Image  mediumImage = item.MediumImage;
+                                            if (mediumImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", mediumImage.URL);
+                                            }
+                                            if (mediumImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = mediumImage.Height;
+                                            } 
+                                            if (mediumImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = mediumImage.Width;
+                                            } 
+                                            if (mediumImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", mediumImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetLargeImage()) 
+                                        {
+                                            Console.WriteLine("                                    LargeImage");
+                                            Image  largeImage = item.LargeImage;
+                                            if (largeImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", largeImage.URL);
+                                            }
+                                            if (largeImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = largeImage.Height;
+                                            } 
+                                            if (largeImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = largeImage.Width;
+                                            } 
+                                            if (largeImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", largeImage.IsVerified);
+                                            }
+                                        } 
+                                        List<ImageSets> imageSetsList = item.ImageSets;
+                                        foreach (ImageSets imageSets in imageSetsList) 
+                                        {
+                                            Console.WriteLine("                                    ImageSets");
+                                            if (imageSets.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", imageSets.MerchantId);
+                                            }
+                                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                                            foreach (ImageSet imageSet in imageSetList) 
+                                            {
+                                                Console.WriteLine("                                        ImageSet");
+                                                if (imageSet.IsSetSwatchImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SwatchImage");
+                                                    Image  swatchImage = imageSet.SwatchImage;
+                                                    if (swatchImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.URL);
+                                                    }
+                                                    if (swatchImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = swatchImage.Height;
+                                                    } 
+                                                    if (swatchImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = swatchImage.Width;
+                                                    } 
+                                                    if (swatchImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetSmallImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SmallImage");
+                                                    Image  smallImage = imageSet.SmallImage;
+                                                    if (smallImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", smallImage.URL);
+                                                    }
+                                                    if (smallImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = smallImage.Height;
+                                                    } 
+                                                    if (smallImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = smallImage.Width;
+                                                    } 
+                                                    if (smallImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", smallImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetThumbnailImage()) 
+                                                {
+                                                    Console.WriteLine("                                            ThumbnailImage");
+                                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                                    if (thumbnailImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.URL);
+                                                    }
+                                                    if (thumbnailImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                                    } 
+                                                    if (thumbnailImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                                    } 
+                                                    if (thumbnailImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetTinyImage()) 
+                                                {
+                                                    Console.WriteLine("                                            TinyImage");
+                                                    Image  tinyImage = imageSet.TinyImage;
+                                                    if (tinyImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.URL);
+                                                    }
+                                                    if (tinyImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = tinyImage.Height;
+                                                    } 
+                                                    if (tinyImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = tinyImage.Width;
+                                                    } 
+                                                    if (tinyImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetMediumImage()) 
+                                                {
+                                                    Console.WriteLine("                                            MediumImage");
+                                                    Image  mediumImage = imageSet.MediumImage;
+                                                    if (mediumImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.URL);
+                                                    }
+                                                    if (mediumImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = mediumImage.Height;
+                                                    } 
+                                                    if (mediumImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = mediumImage.Width;
+                                                    } 
+                                                    if (mediumImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetLargeImage()) 
+                                                {
+                                                    Console.WriteLine("                                            LargeImage");
+                                                    Image  largeImage = imageSet.LargeImage;
+                                                    if (largeImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", largeImage.URL);
+                                                    }
+                                                    if (largeImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = largeImage.Height;
+                                                    } 
+                                                    if (largeImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = largeImage.Width;
+                                                    } 
+                                                    if (largeImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", largeImage.IsVerified);
+                                                    }
+                                                } 
+                                            }
+                                        }
+                                        if (item.IsSetItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    ItemAttributes");
+                                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                                            List<String> actorList  =  itemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (itemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = itemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            List<String> ageList  =  itemAttributes.Age;
+                                            foreach (String age in ageList) 
+                                            { 
+                                                Console.WriteLine("                                        Age");
+                                                Console.WriteLine("                                            {0}", age);
+                                            }	
+                                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AnalogVideoFormat");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AnalogVideoFormat);
+                                            }
+                                            if (itemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  itemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (itemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AspectRatio);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyInstructions);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyRequired);
+                                            }
+                                            if (itemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  itemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (itemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BackFinding);
+                                            }
+                                            if (itemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BandMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesIncluded);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesRequired);
+                                            }
+                                            if (itemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                                            } 
+                                            if (itemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryDescription);
+                                            }
+                                            if (itemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryType);
+                                            }
+                                            if (itemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BezelMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Binding);
+                                            }
+                                            if (itemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Brand);
+                                            }
+                                            if (itemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                                            } 
+                                            if (itemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                                            } 
+                                            if (itemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseType);
+                                            }
+                                            if (itemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CatalogNumber);
+                                            }
+                                            List<String> categoryList  =  itemAttributes.Category;
+                                            foreach (String category in categoryList) 
+                                            { 
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", category);
+                                            }	
+                                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                                            foreach (String categoryBin in categoryBinList) 
+                                            { 
+                                                Console.WriteLine("                                        CategoryBin");
+                                                Console.WriteLine("                                            {0}", categoryBin);
+                                            }	
+                                            if (itemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ChainType);
+                                            }
+                                            List<String> characterList  =  itemAttributes.Character;
+                                            foreach (String character in characterList) 
+                                            { 
+                                                Console.WriteLine("                                        Character");
+                                                Console.WriteLine("                                            {0}", character);
+                                            }	
+                                            if (itemAttributes.IsSetCEROAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        CEROAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CEROAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClaspType);
+                                            }
+                                            if (itemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClothingSize);
+                                            }
+                                            if (itemAttributes.IsSetClubType()) 
+                                            {
+                                                Console.WriteLine("                                        ClubType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClubType);
+                                            }
+                                            if (itemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Color);
+                                            }
+                                            if (itemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Compatibility);
+                                            }
+                                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                                            foreach (String compatibleDevices in compatibleDevicesList) 
+                                            { 
+                                                Console.WriteLine("                                        CompatibleDevices");
+                                                Console.WriteLine("                                            {0}", compatibleDevices);
+                                            }	
+                                            if (itemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerHardwareType);
+                                            }
+                                            if (itemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerPlatform);
+                                            }
+                                            if (itemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Connectivity);
+                                            }
+                                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Country);
+                                            }
+                                            if (itemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUManufacturer);
+                                            }
+                                            if (itemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = itemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (itemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Cuisine);
+                                            }
+                                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                                            { 
+                                                Console.WriteLine("                                        DataLinkProtocol");
+                                                Console.WriteLine("                                            {0}", dataLinkProtocol);
+                                            }	
+                                            if (itemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeliveryOption);
+                                            }
+                                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (itemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Department);
+                                            }
+                                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (itemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialColor);
+                                            }
+                                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  itemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                                            {
+                                                Console.WriteLine("                                        DisplayColorSupport");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DisplayColorSupport);
+                                            }
+                                            if (itemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                                            } 
+                                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (itemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDLayers);
+                                            }
+                                            if (itemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDSides);
+                                            }
+                                            if (itemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DPCI);
+                                            }
+                                            if (itemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.EAN);
+                                            }
+                                            if (itemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Edition);
+                                            }
+                                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                                            foreach (String educationalFocus in educationalFocusList) 
+                                            { 
+                                                Console.WriteLine("                                        EducationalFocus");
+                                                Console.WriteLine("                                            {0}", educationalFocus);
+                                            }	
+                                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                                            foreach (String ethnicity in ethnicityList) 
+                                            { 
+                                                Console.WriteLine("                                        Ethnicity");
+                                                Console.WriteLine("                                            {0}", ethnicity);
+                                            }	
+                                            if (itemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ESRBAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (itemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FabricType);
+                                            }
+                                            if (itemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  itemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (itemAttributes.IsSetFilmColorType()) 
+                                            {
+                                                Console.WriteLine("                                        FilmColorType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FilmColorType);
+                                            }
+                                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (itemAttributes.IsSetFlavorName()) 
+                                            {
+                                                Console.WriteLine("                                        FlavorName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FlavorName);
+                                            }
+                                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  itemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                                            foreach (String formFactor in formFactorList) 
+                                            { 
+                                                Console.WriteLine("                                        FormFactor");
+                                                Console.WriteLine("                                            {0}", formFactor);
+                                            }	
+                                            if (itemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GemType);
+                                            }
+                                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        GemTypeSetElement");
+                                                Console.WriteLine("                                            {0}", gemTypeSetElement);
+                                            }	
+                                            List<String> genderList  =  itemAttributes.Gender;
+                                            foreach (String gender in genderList) 
+                                            { 
+                                                Console.WriteLine("                                        Gender");
+                                                Console.WriteLine("                                            {0}", gender);
+                                            }	
+                                            if (itemAttributes.IsSetGenre()) 
+                                            {
+                                                Console.WriteLine("                                        Genre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Genre);
+                                            }
+                                            if (itemAttributes.IsSetGLProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        GLProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GLProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubFlex()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubFlex");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubFlex);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubLoft()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubLoft");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubLoft);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsDescription);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarAttribute);
+                                            }
+                                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickThickness);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (itemAttributes.IsSetHandOrientation()) 
+                                            {
+                                                Console.WriteLine("                                        HandOrientation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HandOrientation);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskCount);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                                            } 
+                                            if (itemAttributes.IsSetHardDiskInterface()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskInterface);
+                                            }
+                                            if (itemAttributes.IsSetHardwarePlatform()) 
+                                            {
+                                                Console.WriteLine("                                        HardwarePlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardwarePlatform);
+                                            }
+                                            if (itemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasAutoFocus);
+                                            }
+                                            if (itemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasBurstMode);
+                                            }
+                                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasInCameraEditing);
+                                            }
+                                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (itemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasSelfTimer);
+                                            }
+                                            if (itemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasTripodMount);
+                                            }
+                                            if (itemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasVideoOut);
+                                            }
+                                            if (itemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasViewfinder);
+                                            }
+                                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HazardousMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HoursOfOperation);
+                                            }
+                                            if (itemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludedSoftware);
+                                            }
+                                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludesMp3Player);
+                                            }
+                                            if (itemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Ingredients);
+                                            }
+                                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        IngredientsSetElement");
+                                                Console.WriteLine("                                            {0}", ingredientsSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", itemAttributes.InstrumentKey);
+                                            }
+                                            List<String> interestList  =  itemAttributes.Interest;
+                                            foreach (String interest in interestList) 
+                                            { 
+                                                Console.WriteLine("                                        Interest");
+                                                Console.WriteLine("                                            {0}", interest);
+                                            }	
+                                            if (itemAttributes.IsSetIsAdultProduct()) 
+                                            {
+                                                Console.WriteLine("                                        IsAdultProduct");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAdultProduct);
+                                            }
+                                            if (itemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAutographed);
+                                            }
+                                            if (itemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ISBN);
+                                            }
+                                            if (itemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsFragile);
+                                            }
+                                            if (itemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsLabCreated);
+                                            }
+                                            if (itemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsMemorabilia);
+                                            }
+                                            if (itemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                                            } 
+                                            if (itemAttributes.IsSetIsPreannounce()) 
+                                            {
+                                                Console.WriteLine("                                        IsPreannounce");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsPreannounce);
+                                            }
+                                            if (itemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IssuesPerYear);
+                                            }
+                                            if (itemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.KeyboardDescription);
+                                            }
+                                            if (itemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Label);
+                                            }
+                                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                                            foreach (String languageName in languageNameList) 
+                                            { 
+                                                Console.WriteLine("                                        LanguageName");
+                                                Console.WriteLine("                                            {0}", languageName);
+                                            }	
+                                            if (itemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = itemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LegalDisclaimer);
+                                            }
+                                            if (itemAttributes.IsSetLensType()) 
+                                            {
+                                                Console.WriteLine("                                        LensType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LensType);
+                                            }
+                                            if (itemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LineVoltage);
+                                            }
+                                            if (itemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = itemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MacroFocusRange);
+                                            }
+                                            if (itemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MagazineType);
+                                            }
+                                            if (itemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MalletHardness);
+                                            }
+                                            if (itemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Manufacturer);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaterialType);
+                                            }
+                                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        MaterialTypeSetElement");
+                                                Console.WriteLine("                                            {0}", materialTypeSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumColorDepth);
+                                            }
+                                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (itemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (itemAttributes.IsSetMediaType()) 
+                                            {
+                                                Console.WriteLine("                                        MediaType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MediaType);
+                                            }
+                                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (itemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalStamp);
+                                            }
+                                            if (itemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalType);
+                                            }
+                                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MiniMovieDescription);
+                                            }
+                                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Model);
+                                            }
+                                            if (itemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModelYear);
+                                            }
+                                            if (itemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModemDescription);
+                                            }
+                                            if (itemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                                            } 
+                                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (itemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MouseDescription);
+                                            }
+                                            if (itemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MPN);
+                                            }
+                                            if (itemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MusicalStyle);
+                                            }
+                                            if (itemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NativeResolution);
+                                            }
+                                            if (itemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Neighborhood);
+                                            }
+                                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfDiscs);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfIssues);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfItems);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfKeys);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPages);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPearls);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStones);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStrings);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfTracks);
+                                            }
+                                            if (itemAttributes.IsSetOperatingSystem()) 
+                                            {
+                                                Console.WriteLine("                                        OperatingSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OperatingSystem);
+                                            }
+                                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalSensorResolution");
+                                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                                            } 
+                                            if (itemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                                            } 
+                                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OutputWattage);
+                                            }
+                                            if (itemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetPackageQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        PackageQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PackageQuantity);
+                                            }
+                                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                                            foreach (String pantLength in pantLengthList) 
+                                            { 
+                                                Console.WriteLine("                                        PantLength");
+                                                Console.WriteLine("                                            {0}", pantLength);
+                                            }	
+                                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                                            foreach (String pantSize in pantSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        PantSize");
+                                                Console.WriteLine("                                            {0}", pantSize);
+                                            }	
+                                            if (itemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlLustre);
+                                            }
+                                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlMinimumColor);
+                                            }
+                                            if (itemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlShape);
+                                            }
+                                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlStringingMethod);
+                                            }
+                                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (itemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlType);
+                                            }
+                                            if (itemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlUniformity);
+                                            }
+                                            if (itemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  itemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (itemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PriceRating);
+                                            }
+                                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                                            foreach (String primaryColor in primaryColorList) 
+                                            { 
+                                                Console.WriteLine("                                        PrimaryColor");
+                                                Console.WriteLine("                                            {0}", primaryColor);
+                                            }	
+                                            if (itemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProcessorCount);
+                                            }
+                                            if (itemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                                            {
+                                                Console.WriteLine("                                        ProductSiteLaunchDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductSiteLaunchDate);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeName()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeName);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeSubcategory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeSubcategory);
+                                            }
+                                            if (itemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PromotionalTag);
+                                            }
+                                            if (itemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PublicationDate);
+                                            }
+                                            if (itemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Publisher);
+                                            }
+                                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (itemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReadingLevel);
+                                            }
+                                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RecorderTrackCount);
+                                            }
+                                            if (itemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionCode);
+                                            }
+                                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionOfOrigin);
+                                            }
+                                            if (itemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReturnPolicy);
+                                            }
+                                            if (itemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableMemory);
+                                            }
+                                            if (itemAttributes.IsSetRemovableStorage()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableStorage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableStorage);
+                                            }
+                                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                                            {
+                                                Console.WriteLine("                                        RequiredVoltageRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RequiredVoltageRange);
+                                            }
+                                            if (itemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ResolutionModes);
+                                            }
+                                            if (itemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RingSize);
+                                            }
+                                            if (itemAttributes.IsSetRunningTime()) 
+                                            {
+                                                Console.WriteLine("                                        RunningTime");
+                                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                                            } 
+                                            if (itemAttributes.IsSetScentName()) 
+                                            {
+                                                Console.WriteLine("                                        ScentName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ScentName);
+                                            }
+                                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (itemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SettingType);
+                                            }
+                                            if (itemAttributes.IsSetShaftMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        ShaftMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ShaftMaterialType);
+                                            }
+                                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                                            foreach (String shoeSize in shoeSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        ShoeSize");
+                                                Console.WriteLine("                                            {0}", shoeSize);
+                                            }	
+                                            if (itemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Size);
+                                            }
+                                            if (itemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SizePerPearl);
+                                            }
+                                            if (itemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SkillLevel);
+                                            }
+                                            if (itemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SKU);
+                                            }
+                                            if (itemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoldInStores);
+                                            }
+                                            if (itemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoundCardDescription);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerCount);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneClarity);
+                                            }
+                                            if (itemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneColor);
+                                            }
+                                            if (itemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneCut);
+                                            }
+                                            if (itemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneShape);
+                                            }
+                                            if (itemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                                            } 
+                                            if (itemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Studio);
+                                            }
+                                            if (itemAttributes.IsSetStyle()) 
+                                            {
+                                                Console.WriteLine("                                        Style");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Style);
+                                            }
+                                            if (itemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                                            {
+                                                Console.WriteLine("                                        SupportedMediaSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SupportedMediaSize);
+                                            }
+                                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SystemMemoryType);
+                                            }
+                                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                                            foreach (String targetBrand in targetBrandList) 
+                                            { 
+                                                Console.WriteLine("                                        TargetBrand");
+                                                Console.WriteLine("                                            {0}", targetBrand);
+                                            }	
+                                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TellingPageIndicator);
+                                            }
+                                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Title);
+                                            }
+                                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalParallelPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSerialPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSBPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", itemAttributes.UPC);
+                                            }
+                                            if (itemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDenomination);
+                                            }
+                                            if (itemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDescription);
+                                            }
+                                            if (itemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Warranty);
+                                            }
+                                            if (itemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WatchMovementType);
+                                            }
+                                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (itemAttributes.IsSetWEEETaxValue()) 
+                                            {
+                                                Console.WriteLine("                                        WEEETaxValue");
+                                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                                if (WEEETaxValue.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.Amount);
+                                                }
+                                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.CurrencyCode);
+                                                }
+                                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetMerchantItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    MerchantItemAttributes");
+                                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                                            List<String> actorList  =  merchantItemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = merchantItemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  merchantItemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AspectRatio);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyInstructions);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  merchantItemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (merchantItemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BackFinding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BandMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesIncluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                                            } 
+                                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BezelMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Binding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Brand);
+                                            }
+                                            if (merchantItemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CatalogNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ChainType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClaspType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClothingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Color);
+                                            }
+                                            if (merchantItemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Compatibility);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerHardwareType);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerPlatform);
+                                            }
+                                            if (merchantItemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Connectivity);
+                                            }
+                                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Country);
+                                            }
+                                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        CountryOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CountryOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUManufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (merchantItemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Cuisine);
+                                            }
+                                            if (merchantItemAttributes.IsSetCustomizable()) 
+                                            {
+                                                Console.WriteLine("                                        Customizable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Customizable);
+                                            }
+                                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeliveryOption);
+                                            }
+                                            if (merchantItemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Department);
+                                            }
+                                            if (merchantItemAttributes.IsSetDescription()) 
+                                            {
+                                                Console.WriteLine("                                        Description");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Description);
+                                            }
+                                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  merchantItemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDLayers);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDSides);
+                                            }
+                                            if (merchantItemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DPCI);
+                                            }
+                                            if (merchantItemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.EAN);
+                                            }
+                                            if (merchantItemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Edition);
+                                            }
+                                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ESRBAgeRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FabricType);
+                                            }
+                                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  merchantItemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  merchantItemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                                            {
+                                                Console.WriteLine("                                        FixedShippingCharge");
+                                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                                if (fixedShippingCharge.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.Amount);
+                                                }
+                                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.CurrencyCode);
+                                                }
+                                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GemType);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarAttribute);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickThickness);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HardDiskCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasAutoFocus);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasBurstMode);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasInCameraEditing);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasSelfTimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasTripodMount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasVideoOut);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasViewfinder);
+                                            }
+                                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HazardousMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HoursOfOperation);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludedSoftware);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludesMp3Player);
+                                            }
+                                            if (merchantItemAttributes.IsSetIndications()) 
+                                            {
+                                                Console.WriteLine("                                        Indications");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Indications);
+                                            }
+                                            if (merchantItemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Ingredients);
+                                            }
+                                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.InstrumentKey);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsAutographed);
+                                            }
+                                            if (merchantItemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ISBN);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsFragile);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsLabCreated);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsMemorabilia);
+                                            }
+                                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                                            } 
+                                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IssuesPerYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.KeyboardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Label);
+                                            }
+                                            if (merchantItemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = merchantItemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LegalDisclaimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LineVoltage);
+                                            }
+                                            if (merchantItemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MacroFocusRange);
+                                            }
+                                            if (merchantItemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MagazineType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MalletHardness);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Manufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumColorDepth);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalStamp);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MiniMovieDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Model);
+                                            }
+                                            if (merchantItemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModelYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModemDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MouseDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MPN);
+                                            }
+                                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MusicalStyle);
+                                            }
+                                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NativeResolution);
+                                            }
+                                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Neighborhood);
+                                            }
+                                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfDiscs);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfIssues);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfItems);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfKeys);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPages);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPearls);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStones);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStrings);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfTracks);
+                                            }
+                                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                                            } 
+                                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OutputWattage);
+                                            }
+                                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlLustre);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlMinimumColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlStringingMethod);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlType);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlUniformity);
+                                            }
+                                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  merchantItemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (merchantItemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PriceRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProcessorCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProductGroup);
+                                            }
+                                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PromotionalTag);
+                                            }
+                                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PublicationDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Publisher);
+                                            }
+                                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                                            foreach (String purchasingChannel in purchasingChannelList) 
+                                            { 
+                                                Console.WriteLine("                                        PurchasingChannel");
+                                                Console.WriteLine("                                            {0}", purchasingChannel);
+                                            }	
+                                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReadingLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RecorderTrackCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionCode);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReleaseDate);
+                                            }
+                                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RemovableMemory);
+                                            }
+                                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ResolutionModes);
+                                            }
+                                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReturnPolicy);
+                                            }
+                                            if (merchantItemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                                            {
+                                                Console.WriteLine("                                        SafetyWarning");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SafetyWarning);
+                                            }
+                                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                                            {
+                                                Console.WriteLine("                                        SalesRestriction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SalesRestriction);
+                                            }
+                                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SettingType);
+                                            }
+                                            if (merchantItemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Size);
+                                            }
+                                            if (merchantItemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SKU);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoldInStores);
+                                            }
+                                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SizePerPearl);
+                                            }
+                                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SkillLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoundCardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneClarity);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneCut);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Studio);
+                                            }
+                                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SystemMemoryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TellingPageIndicator);
+                                            }
+                                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Title);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalParallelPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSerialPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSBPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.UPC);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDenomination);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                                            {
+                                                Console.WriteLine("                                        VendorRebate");
+                                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                                if (vendorRebate.IsSetType()) 
+                                                {
+                                                    Console.WriteLine("                                            Type");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.Type);
+                                                }
+                                                if (vendorRebate.IsSetStartDate()) 
+                                                {
+                                                    Console.WriteLine("                                            StartDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.StartDate);
+                                                }
+                                                if (vendorRebate.IsSetEndDate()) 
+                                                {
+                                                    Console.WriteLine("                                            EndDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.EndDate);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Warranty);
+                                            }
+                                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WatchMovementType);
+                                            }
+                                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                                            {
+                                                Console.WriteLine("                                        WebsiteBuyability");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WebsiteBuyability);
+                                            }
+                                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetCollections()) 
+                                        {
+                                            Console.WriteLine("                                    Collections");
+                                            Collections  collections = item.Collections;
+                                            List<CollectionsCollection> collectionList = collections.Collection;
+                                            foreach (CollectionsCollection collection in collectionList) 
+                                            {
+                                                Console.WriteLine("                                        Collection");
+                                                if (collection.IsSetCollectionSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionSummary");
+                                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestListPrice");
+                                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                                        if (lowestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.Amount);
+                                                        }
+                                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.CurrencyCode);
+                                                        }
+                                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestListPrice");
+                                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                                        if (highestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.Amount);
+                                                        }
+                                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.CurrencyCode);
+                                                        }
+                                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestSalePrice");
+                                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                                        if (lowestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.Amount);
+                                                        }
+                                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestSalePrice");
+                                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                                        if (highestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.Amount);
+                                                        }
+                                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (collection.IsSetCollectionParent()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionParent");
+                                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                                    if (collectionParent.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.ASIN);
+                                                    }
+                                                    if (collectionParent.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.Title);
+                                                    }
+                                                } 
+                                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionItem");
+                                                    if (collectionItem.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.ASIN);
+                                                    }
+                                                    if (collectionItem.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.Title);
+                                                    }
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSubjects()) 
+                                        {
+                                            Console.WriteLine("                                    Subjects");
+                                            Subjects  subjects = item.Subjects;
+                                            List<String> subjectList  =  subjects.Subject;
+                                            foreach (String subject in subjectList) 
+                                            { 
+                                                Console.WriteLine("                                        Subject");
+                                                Console.WriteLine("                                            {0}", subject);
+                                            }	
+                                        } 
+                                        if (item.IsSetOfferSummary()) 
+                                        {
+                                            Console.WriteLine("                                    OfferSummary");
+                                            OfferSummary  offerSummary = item.OfferSummary;
+                                            if (offerSummary.IsSetLowestNewPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestNewPrice");
+                                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                                if (lowestNewPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.Amount);
+                                                }
+                                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.CurrencyCode);
+                                                }
+                                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestUsedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestUsedPrice");
+                                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                                if (lowestUsedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.Amount);
+                                                }
+                                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.CurrencyCode);
+                                                }
+                                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestCollectiblePrice");
+                                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.Amount);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestRefurbishedPrice");
+                                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.Amount);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetTotalNew()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNew");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalNew);
+                                            }
+                                            if (offerSummary.IsSetTotalUsed()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUsed");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalUsed);
+                                            }
+                                            if (offerSummary.IsSetTotalCollectible()) 
+                                            {
+                                                Console.WriteLine("                                        TotalCollectible");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalCollectible);
+                                            }
+                                            if (offerSummary.IsSetTotalRefurbished()) 
+                                            {
+                                                Console.WriteLine("                                        TotalRefurbished");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalRefurbished);
+                                            }
+                                        } 
+                                        if (item.IsSetOffers()) 
+                                        {
+                                            Console.WriteLine("                                    Offers");
+                                            Offers  offers = item.Offers;
+                                            if (offers.IsSetTotalOffers()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOffers");
+                                                Console.WriteLine("                                            {0}", offers.TotalOffers);
+                                            }
+                                            if (offers.IsSetTotalOfferPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOfferPages");
+                                                Console.WriteLine("                                            {0}", offers.TotalOfferPages);
+                                            }
+                                            List<Offer> offerList = offers.Offer;
+                                            foreach (Offer offer in offerList) 
+                                            {
+                                                Console.WriteLine("                                        Offer");
+                                                if (offer.IsSetMerchant()) 
+                                                {
+                                                    Console.WriteLine("                                            Merchant");
+                                                    Merchant  merchant = offer.Merchant;
+                                                    if (merchant.IsSetMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantId");
+                                                        Console.WriteLine("                                                    {0}", merchant.MerchantId);
+                                                    }
+                                                    if (merchant.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", merchant.Name);
+                                                    }
+                                                    if (merchant.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", merchant.GlancePage);
+                                                    }
+                                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", merchant.AverageFeedbackRating);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedback);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedbackPages);
+                                                    }
+                                                } 
+                                                if (offer.IsSetSeller()) 
+                                                {
+                                                    Console.WriteLine("                                            Seller");
+                                                    Seller  seller = offer.Seller;
+                                                    if (seller.IsSetSellerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerId");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerId);
+                                                    }
+                                                    if (seller.IsSetSellerName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerName);
+                                                    }
+                                                    if (seller.IsSetSellerLegalName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerLegalName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerLegalName);
+                                                    }
+                                                    if (seller.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", seller.Nickname);
+                                                    }
+                                                    if (seller.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", seller.GlancePage);
+                                                    }
+                                                    if (seller.IsSetAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                About");
+                                                        Console.WriteLine("                                                    {0}", seller.About);
+                                                    }
+                                                    if (seller.IsSetMoreAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                MoreAbout");
+                                                        Console.WriteLine("                                                    {0}", seller.MoreAbout);
+                                                    }
+                                                    if (seller.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        SellerLocation  location = seller.Location;
+                                                        if (location.IsSetUserDefinedLocation()) 
+                                                        {
+                                                            Console.WriteLine("                                                    UserDefinedLocation");
+                                                            Console.WriteLine("                                                        {0}", location.UserDefinedLocation);
+                                                        }
+                                                        if (location.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", location.City);
+                                                        }
+                                                        if (location.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", location.State);
+                                                        }
+                                                        if (location.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", location.Country);
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", seller.AverageFeedbackRating);
+                                                    }
+                                                    if (seller.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedback);
+                                                    }
+                                                    if (seller.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedbackPages);
+                                                    }
+                                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedbackSummary");
+                                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                                        {
+                                                            Console.WriteLine("                                                    FeedbackDateRange");
+                                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                                            {
+                                                                Console.WriteLine("                                                        SellerFeedbackRating");
+                                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Count");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Count);
+                                                                }
+                                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Percentage");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Percentage);
+                                                                }
+                                                            }
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetSellerFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedback");
+                                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                                        foreach (Feedback feedback in feedbackList) 
+                                                        {
+                                                            Console.WriteLine("                                                    Feedback");
+                                                            if (feedback.IsSetRating()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Rating");
+                                                                Console.WriteLine("                                                            {0}", feedback.Rating);
+                                                            }
+                                                            if (feedback.IsSetComment()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Comment");
+                                                                Console.WriteLine("                                                            {0}", feedback.Comment);
+                                                            }
+                                                            if (feedback.IsSetDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Date");
+                                                                Console.WriteLine("                                                            {0}", feedback.Date);
+                                                            }
+                                                            if (feedback.IsSetRatedBy()) 
+                                                            {
+                                                                Console.WriteLine("                                                        RatedBy");
+                                                                Console.WriteLine("                                                            {0}", feedback.RatedBy);
+                                                            }
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetOfferAttributes()) 
+                                                {
+                                                    Console.WriteLine("                                            OfferAttributes");
+                                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                                    if (offerAttributes.IsSetCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                Condition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.Condition);
+                                                    }
+                                                    if (offerAttributes.IsSetSubCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                SubCondition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.SubCondition);
+                                                    }
+                                                    if (offerAttributes.IsSetConditionNote()) 
+                                                    {
+                                                        Console.WriteLine("                                                ConditionNote");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.ConditionNote);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipExpedited");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipExpedited);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipInternational");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipInternational);
+                                                    }
+                                                } 
+                                                List<OfferListing> offerListingList = offer.OfferListing;
+                                                foreach (OfferListing offerListing in offerListingList) 
+                                                {
+                                                    Console.WriteLine("                                            OfferListing");
+                                                    if (offerListing.IsSetOfferListingId()) 
+                                                    {
+                                                        Console.WriteLine("                                                OfferListingId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.OfferListingId);
+                                                    }
+                                                    if (offerListing.IsSetExchangeId()) 
+                                                    {
+                                                        Console.WriteLine("                                                ExchangeId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ExchangeId);
+                                                    }
+                                                    if (offerListing.IsSetPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                Price");
+                                                        Price  price = offerListing.Price;
+                                                        if (price.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", price.Amount);
+                                                        }
+                                                        if (price.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", price.CurrencyCode);
+                                                        }
+                                                        if (price.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", price.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalePrice");
+                                                        Price  salePrice = offerListing.SalePrice;
+                                                        if (salePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", salePrice.Amount);
+                                                        }
+                                                        if (salePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", salePrice.CurrencyCode);
+                                                        }
+                                                        if (salePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", salePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetAmountSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                AmountSaved");
+                                                        Price  amountSaved = offerListing.AmountSaved;
+                                                        if (amountSaved.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.Amount);
+                                                        }
+                                                        if (amountSaved.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.CurrencyCode);
+                                                        }
+                                                        if (amountSaved.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetPercentageSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentageSaved");
+                                                        Console.WriteLine("                                                    {0}", offerListing.PercentageSaved);
+                                                    }
+                                                    if (offerListing.IsSetAvailability()) 
+                                                    {
+                                                        Console.WriteLine("                                                Availability");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Availability);
+                                                    }
+                                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                                    {
+                                                        Console.WriteLine("                                                AvailabilityAttributes");
+                                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    AvailabilityType");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.AvailabilityType);
+                                                        }
+                                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsPreorder");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.IsPreorder);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MinimumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MinimumHours);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MaximumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MaximumHours);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Quantity);
+                                                    }
+                                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreAddress");
+                                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                                        if (ISPUStoreAddress.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Name);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address1");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address1);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address2");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address2);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address3");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address3);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.City);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.State);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    PostalCode");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.PostalCode);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Country);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetISPUStoreHours()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreHours");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ISPUStoreHours);
+                                                    }
+                                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsEligibleForSuperSaverShipping");
+                                                        Console.WriteLine("                                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                                    }
+                                                    if (offerListing.IsSetSalesRestriction()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalesRestriction");
+                                                        Console.WriteLine("                                                    {0}", offerListing.SalesRestriction);
+                                                    }
+                                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                                    {
+                                                        Console.WriteLine("                                                ShippingCharge");
+                                                        if (shippingCharge.IsSetShippingType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingType");
+                                                            Console.WriteLine("                                                        {0}", shippingCharge.ShippingType);
+                                                        }
+                                                        if (shippingCharge.IsSetShippingPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingPrice");
+                                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                                            if (shippingPrice.IsSetAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Amount");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.Amount);
+                                                            }
+                                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CurrencyCode");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.CurrencyCode);
+                                                            }
+                                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                                            {
+                                                                Console.WriteLine("                                                        FormattedPrice");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.FormattedPrice);
+                                                            }
+                                                        } 
+                                                    }
+                                                }
+                                                if (offer.IsSetLoyaltyPoints()) 
+                                                {
+                                                    Console.WriteLine("                                            LoyaltyPoints");
+                                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                                    if (loyaltyPoints.IsSetPoints()) 
+                                                    {
+                                                        Console.WriteLine("                                                Points");
+                                                        Console.WriteLine("                                                    {0}", loyaltyPoints.Points);
+                                                    }
+                                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                                    {
+                                                        Console.WriteLine("                                                TypicalRedemptionValue");
+                                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.Amount);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetPromotions()) 
+                                                {
+                                                    Console.WriteLine("                                            Promotions");
+                                                    Promotions  promotions = offer.Promotions;
+                                                    List<Promotion> promotionList = promotions.Promotion;
+                                                    foreach (Promotion promotion in promotionList) 
+                                                    {
+                                                        Console.WriteLine("                                                Promotion");
+                                                        if (promotion.IsSetSummary()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Summary");
+                                                            PromotionSummary  summary = promotion.Summary;
+                                                            if (summary.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", summary.PromotionId);
+                                                            }
+                                                            if (summary.IsSetCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Category");
+                                                                Console.WriteLine("                                                            {0}", summary.Category);
+                                                            }
+                                                            if (summary.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", summary.StartDate);
+                                                            }
+                                                            if (summary.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", summary.EndDate);
+                                                            }
+                                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirementDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.EligibilityRequirementDescription);
+                                                            }
+                                                            if (summary.IsSetBenefitDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        BenefitDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.BenefitDescription);
+                                                            }
+                                                            if (summary.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", summary.TermsAndConditions);
+                                                            }
+                                                        } 
+                                                        if (promotion.IsSetDetails()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Details");
+                                                            PromotionDetails  details = promotion.Details;
+                                                            if (details.IsSetMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantId);
+                                                            }
+                                                            if (details.IsSetOwningMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        OwningMerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.OwningMerchantId);
+                                                            }
+                                                            if (details.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionId);
+                                                            }
+                                                            if (details.IsSetPromotionCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionCategory");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionCategory);
+                                                            }
+                                                            if (details.IsSetMerchantPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantPromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantPromotionId);
+                                                            }
+                                                            if (details.IsSetGroupClaimCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        GroupClaimCode");
+                                                                Console.WriteLine("                                                            {0}", details.GroupClaimCode);
+                                                            }
+                                                            if (details.IsSetCouponCombinationType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CouponCombinationType");
+                                                                Console.WriteLine("                                                            {0}", details.CouponCombinationType);
+                                                            }
+                                                            if (details.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", details.StartDate);
+                                                            }
+                                                            if (details.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", details.EndDate);
+                                                            }
+                                                            if (details.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", details.TermsAndConditions);
+                                                            }
+                                                            if (details.IsSetEligibilityRequirements()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirements");
+                                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            EligibilityRequirement");
+                                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                EligibilityRequirementType");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.Quantity);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                CurrencyAmount");
+                                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                                        if (currencyAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.Amount);
+                                                                        }
+                                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.CurrencyCode);
+                                                                        }
+                                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetBenefits()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Benefits");
+                                                                PromotionBenefits  benefits = details.Benefits;
+                                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Benefit");
+                                                                    if (benefit.IsSetBenefitType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                BenefitType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.BenefitType);
+                                                                    }
+                                                                    if (benefit.IsSetComponentType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                ComponentType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.ComponentType);
+                                                                    }
+                                                                    if (benefit.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.Quantity);
+                                                                    }
+                                                                    if (benefit.IsSetPercentOff()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                PercentOff");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.PercentOff);
+                                                                    }
+                                                                    if (benefit.IsSetFixedAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                FixedAmount");
+                                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                                        if (fixedAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.Amount);
+                                                                        }
+                                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.CurrencyCode);
+                                                                        }
+                                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                    if (benefit.IsSetCeiling()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Ceiling");
+                                                                        Price  ceiling = benefit.Ceiling;
+                                                                        if (ceiling.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.Amount);
+                                                                        }
+                                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.CurrencyCode);
+                                                                        }
+                                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetItemApplicability()) 
+                                                            {
+                                                                Console.WriteLine("                                                        ItemApplicability");
+                                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                                if (itemApplicability.IsSetASIN()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            ASIN");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.ASIN);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInBenefitSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInBenefitSet);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInEligibilityRequirementSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                                }
+                                                            } 
+                                                            if (details.IsSetMerchandisingMessage()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchandisingMessage");
+                                                                Console.WriteLine("                                                            {0}", details.MerchandisingMessage);
+                                                            }
+                                                        } 
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetVariationSummary()) 
+                                        {
+                                            Console.WriteLine("                                    VariationSummary");
+                                            VariationSummary  variationSummary = item.VariationSummary;
+                                            if (variationSummary.IsSetLowestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestPrice");
+                                                Price  lowestPrice = variationSummary.LowestPrice;
+                                                if (lowestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.Amount);
+                                                }
+                                                if (lowestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.CurrencyCode);
+                                                }
+                                                if (lowestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestPrice");
+                                                Price  highestPrice = variationSummary.HighestPrice;
+                                                if (highestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestPrice.Amount);
+                                                }
+                                                if (highestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestPrice.CurrencyCode);
+                                                }
+                                                if (highestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetLowestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestSalePrice");
+                                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                                if (lowestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.Amount);
+                                                }
+                                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.CurrencyCode);
+                                                }
+                                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestSalePrice");
+                                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                                if (highestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.Amount);
+                                                }
+                                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.CurrencyCode);
+                                                }
+                                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetSingleMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        SingleMerchantId");
+                                                Console.WriteLine("                                            {0}", variationSummary.SingleMerchantId);
+                                            }
+                                        } 
+                                        if (item.IsSetVariations()) 
+                                        {
+                                            Console.WriteLine("                                    Variations");
+                                            Variations  variations = item.Variations;
+                                            if (variations.IsSetTotalVariations()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariations");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariations);
+                                            }
+                                            if (variations.IsSetTotalVariationPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariationPages");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariationPages);
+                                            }
+                                            if (variations.IsSetVariationDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDimensions");
+                                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                                foreach (String variationDimension in variationDimensionList) 
+                                                { 
+                                                    Console.WriteLine("                                            VariationDimension");
+                                                    Console.WriteLine("                                                {0}", variationDimension);
+                                                }	
+                                            } 
+                                        } 
+                                        if (item.IsSetCustomerReviews()) 
+                                        {
+                                            Console.WriteLine("                                    CustomerReviews");
+                                            CustomerReviews  customerReviews = item.CustomerReviews;
+                                            if (customerReviews.IsSetAverageRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageRating");
+                                                Console.WriteLine("                                            {0}", customerReviews.AverageRating);
+                                            }
+                                            if (customerReviews.IsSetTotalReviews()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviews");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviews);
+                                            }
+                                            if (customerReviews.IsSetTotalReviewPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviewPages");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviewPages);
+                                            }
+                                            List<Review> reviewList = customerReviews.Review;
+                                            foreach (Review review in reviewList) 
+                                            {
+                                                Console.WriteLine("                                        Review");
+                                                if (review.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", review.ASIN);
+                                                }
+                                                if (review.IsSetRating()) 
+                                                {
+                                                    Console.WriteLine("                                            Rating");
+                                                    Console.WriteLine("                                                {0}", review.Rating);
+                                                }
+                                                if (review.IsSetHelpfulVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            HelpfulVotes");
+                                                    Console.WriteLine("                                                {0}", review.HelpfulVotes);
+                                                }
+                                                if (review.IsSetCustomerId()) 
+                                                {
+                                                    Console.WriteLine("                                            CustomerId");
+                                                    Console.WriteLine("                                                {0}", review.CustomerId);
+                                                }
+                                                if (review.IsSetReviewer()) 
+                                                {
+                                                    Console.WriteLine("                                            Reviewer");
+                                                    Reviewer  reviewer = review.Reviewer;
+                                                    if (reviewer.IsSetCustomerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                CustomerId");
+                                                        Console.WriteLine("                                                    {0}", reviewer.CustomerId);
+                                                    }
+                                                    if (reviewer.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Name);
+                                                    }
+                                                    if (reviewer.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Nickname);
+                                                    }
+                                                    if (reviewer.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Location);
+                                                    }
+                                                } 
+                                                if (review.IsSetTotalVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            TotalVotes");
+                                                    Console.WriteLine("                                                {0}", review.TotalVotes);
+                                                }
+                                                if (review.IsSetDate()) 
+                                                {
+                                                    Console.WriteLine("                                            Date");
+                                                    Console.WriteLine("                                                {0}", review.Date);
+                                                }
+                                                if (review.IsSetSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            Summary");
+                                                    Console.WriteLine("                                                {0}", review.Summary);
+                                                }
+                                                if (review.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", review.Content);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetEditorialReviews()) 
+                                        {
+                                            Console.WriteLine("                                    EditorialReviews");
+                                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                                            {
+                                                Console.WriteLine("                                        EditorialReview");
+                                                if (editorialReview.IsSetSource()) 
+                                                {
+                                                    Console.WriteLine("                                            Source");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Source);
+                                                }
+                                                if (editorialReview.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Content);
+                                                }
+                                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                                {
+                                                    Console.WriteLine("                                            IsLinkSuppressed");
+                                                    Console.WriteLine("                                                {0}", editorialReview.IsLinkSuppressed);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSimilarProducts()) 
+                                        {
+                                            Console.WriteLine("                                    SimilarProducts");
+                                            SimilarProducts  similarProducts = item.SimilarProducts;
+                                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                                            foreach (SimilarProduct similarProduct in similarProductList) 
+                                            {
+                                                Console.WriteLine("                                        SimilarProduct");
+                                                if (similarProduct.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", similarProduct.ASIN);
+                                                }
+                                                if (similarProduct.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", similarProduct.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetAccessories()) 
+                                        {
+                                            Console.WriteLine("                                    Accessories");
+                                            Accessories  accessories = item.Accessories;
+                                            List<Accessory> accessoryList = accessories.Accessory;
+                                            foreach (Accessory accessory in accessoryList) 
+                                            {
+                                                Console.WriteLine("                                        Accessory");
+                                                if (accessory.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", accessory.ASIN);
+                                                }
+                                                if (accessory.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", accessory.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetTracks()) 
+                                        {
+                                            Console.WriteLine("                                    Tracks");
+                                            Tracks  tracks = item.Tracks;
+                                            List<Disc> discList = tracks.Disc;
+                                            foreach (Disc disc in discList) 
+                                            {
+                                                Console.WriteLine("                                        Disc");
+                                                List<Track> trackList = disc.Track;
+                                                foreach (Track track in trackList) 
+                                                {
+                                                    Console.WriteLine("                                            Track");
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetBrowseNodes()) 
+                                        {
+                                            Console.WriteLine("                                    BrowseNodes");
+                                            BrowseNodes  browseNodes = item.BrowseNodes;
+                                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                                            foreach (BrowseNode browseNode in browseNodeList) 
+                                            {
+                                                Console.WriteLine("                                        BrowseNode");
+                                                if (browseNode.IsSetBrowseNodeId()) 
+                                                {
+                                                    Console.WriteLine("                                            BrowseNodeId");
+                                                    Console.WriteLine("                                                {0}", browseNode.BrowseNodeId);
+                                                }
+                                                if (browseNode.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", browseNode.Name);
+                                                }
+                                                if (browseNode.IsSetIsCategoryRoot()) 
+                                                {
+                                                    Console.WriteLine("                                            IsCategoryRoot");
+                                                    Console.WriteLine("                                                {0}", browseNode.IsCategoryRoot);
+                                                }
+                                                if (browseNode.IsSetProperties()) 
+                                                {
+                                                    Console.WriteLine("                                            Properties");
+                                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                                    List<Property> propertyList = properties.Property;
+                                                    foreach (Property property in propertyList) 
+                                                    {
+                                                        Console.WriteLine("                                                Property");
+                                                        if (property.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", property.Name);
+                                                        }
+                                                        if (property.IsSetValue()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Value");
+                                                            Console.WriteLine("                                                        {0}", property.Value);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetChildren()) 
+                                                {
+                                                    Console.WriteLine("                                            Children");
+                                                    BrowseNodeChildren  children = browseNode.Children;
+                                                } 
+                                                if (browseNode.IsSetAncestors()) 
+                                                {
+                                                    Console.WriteLine("                                            Ancestors");
+                                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                                } 
+                                                if (browseNode.IsSetTopSellers()) 
+                                                {
+                                                    Console.WriteLine("                                            TopSellers");
+                                                    TopSellers  topSellers = browseNode.TopSellers;
+                                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                                    foreach (TopSeller topSeller in topSellerList) 
+                                                    {
+                                                        Console.WriteLine("                                                TopSeller");
+                                                        if (topSeller.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", topSeller.ASIN);
+                                                        }
+                                                        if (topSeller.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", topSeller.Title);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetNewReleases()) 
+                                                {
+                                                    Console.WriteLine("                                            NewReleases");
+                                                    NewReleases  newReleases = browseNode.NewReleases;
+                                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                                    foreach (NewRelease newRelease in newReleaseList) 
+                                                    {
+                                                        Console.WriteLine("                                                NewRelease");
+                                                        if (newRelease.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", newRelease.ASIN);
+                                                        }
+                                                        if (newRelease.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", newRelease.Title);
+                                                        }
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetSearchInside()) 
+                                        {
+                                            Console.WriteLine("                                    SearchInside");
+                                            SearchInside  searchInside = item.SearchInside;
+                                            if (searchInside.IsSetTotalExcerpts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExcerpts");
+                                                Console.WriteLine("                                            {0}", searchInside.TotalExcerpts);
+                                            }
+                                            if (searchInside.IsSetExcerpt()) 
+                                            {
+                                                Console.WriteLine("                                        Excerpt");
+                                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                                if (excerpt.IsSetChecksum()) 
+                                                {
+                                                    Console.WriteLine("                                            Checksum");
+                                                    Console.WriteLine("                                                {0}", excerpt.Checksum);
+                                                }
+                                                if (excerpt.IsSetPageType()) 
+                                                {
+                                                    Console.WriteLine("                                            PageType");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageType);
+                                                }
+                                            } 
+                                        } 
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                        }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/HelpSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/HelpSample.cs
new file mode 100644
index 0000000..3060103
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/HelpSample.cs
@@ -0,0 +1,215 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Help  Samples
+    /// </summary>
+    public class HelpSample
+    {
+    
+                         
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The Help operation provides information about ECS operations and
+        /// response groups. For operations, Help lists required and optional
+        /// request parameters, as well as default and optional response groups the
+        /// operation can use. For response groups, Help lists the operations that can
+        /// use the response group as well as the response tags returned by the
+        /// response group in the XML response.
+        /// <p/>
+        /// The Help operation is not often used in customer applications. It can, however, be
+        /// used to help the developer in the following ways:
+        /// <p/>
+        /// <ul>
+        /// <li>Provide contextual help in an interactive development environment (IDE) for developerst</li>
+        /// <li>Automate documentation creation as part of a developer's toolkit. </li>
+        /// </ul>
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Help</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">Help request</param>
+        public static void InvokeHelp(AmazonECS service, params HelpRequest [] request) 
+        {
+            try 
+            {
+                HelpResponse response = service.Help(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        HelpResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Information> informationList = response.Information;
+                foreach (Information information in informationList) 
+                {
+                    Console.WriteLine("            Information");
+                    List<OperationInformation> operationInformationList = information.OperationInformation;
+                    foreach (OperationInformation operationInformation in operationInformationList) 
+                    {
+                        Console.WriteLine("                OperationInformation");
+                        if (operationInformation.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", operationInformation.Name);
+                        }
+                        if (operationInformation.IsSetDescription()) 
+                        {
+                            Console.WriteLine("                    Description");
+                            Console.WriteLine("                        {0}", operationInformation.Description);
+                        }
+                        if (operationInformation.IsSetRequiredParameters()) 
+                        {
+                            Console.WriteLine("                    RequiredParameters");
+                            RequiredParameters  requiredParameters = operationInformation.RequiredParameters;
+                            List<String> parameterList  =  requiredParameters.Parameter;
+                            foreach (String parameter in parameterList) 
+                            { 
+                                Console.WriteLine("                        Parameter");
+                                Console.WriteLine("                            {0}", parameter);
+                            }	
+                        } 
+                        if (operationInformation.IsSetAvailableParameters()) 
+                        {
+                            Console.WriteLine("                    AvailableParameters");
+                            AvailableParameters  availableParameters = operationInformation.AvailableParameters;
+                            List<String> parameterList  =  availableParameters.Parameter;
+                            foreach (String parameter in parameterList) 
+                            { 
+                                Console.WriteLine("                        Parameter");
+                                Console.WriteLine("                            {0}", parameter);
+                            }	
+                        } 
+                        if (operationInformation.IsSetDefaultResponseGroups()) 
+                        {
+                            Console.WriteLine("                    DefaultResponseGroups");
+                            DefaultResponseGroups  defaultResponseGroups = operationInformation.DefaultResponseGroups;
+                            List<String> responseGroupList  =  defaultResponseGroups.ResponseGroup;
+                            foreach (String responseGroup in responseGroupList) 
+                            { 
+                                Console.WriteLine("                        ResponseGroup");
+                                Console.WriteLine("                            {0}", responseGroup);
+                            }	
+                        } 
+                        if (operationInformation.IsSetAvailableResponseGroups()) 
+                        {
+                            Console.WriteLine("                    AvailableResponseGroups");
+                            AvailableResponseGroups  availableResponseGroups = operationInformation.AvailableResponseGroups;
+                            List<String> responseGroupList  =  availableResponseGroups.ResponseGroup;
+                            foreach (String responseGroup in responseGroupList) 
+                            { 
+                                Console.WriteLine("                        ResponseGroup");
+                                Console.WriteLine("                            {0}", responseGroup);
+                            }	
+                        } 
+                    }
+                    List<ResponseGroupInformation> responseGroupInformationList = information.ResponseGroupInformation;
+                    foreach (ResponseGroupInformation responseGroupInformation in responseGroupInformationList) 
+                    {
+                        Console.WriteLine("                ResponseGroupInformation");
+                        if (responseGroupInformation.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", responseGroupInformation.Name);
+                        }
+                        if (responseGroupInformation.IsSetCreationDate()) 
+                        {
+                            Console.WriteLine("                    CreationDate");
+                            Console.WriteLine("                        {0}", responseGroupInformation.CreationDate);
+                        }
+                        if (responseGroupInformation.IsSetValidOperations()) 
+                        {
+                            Console.WriteLine("                    ValidOperations");
+                            ResponseGroupValidOperations  validOperations = responseGroupInformation.ValidOperations;
+                            List<String> operationList  =  validOperations.Operation;
+                            foreach (String operation in operationList) 
+                            { 
+                                Console.WriteLine("                        Operation");
+                                Console.WriteLine("                            {0}", operation);
+                            }	
+                        } 
+                        if (responseGroupInformation.IsSetElements()) 
+                        {
+                            Console.WriteLine("                    Elements");
+                            ResponseGroupElements  elements = responseGroupInformation.Elements;
+                            List<String> elementList  =  elements.Element;
+                            foreach (String element in elementList) 
+                            { 
+                                Console.WriteLine("                        Element");
+                                Console.WriteLine("                            {0}", element);
+                            }	
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                                                }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemLookupSample.cs
new file mode 100644
index 0000000..a331b51
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemLookupSample.cs
@@ -0,0 +1,5127 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Item Lookup  Samples
+    /// </summary>
+    public class ItemLookupSample
+    {
+    
+                                 
+        /// <summary>
+        /// 
+        /// <p/>
+        /// Given an Item identifier, the ItemLookup operation returns some or all
+        /// of the item attributes, depending on the response group specified in the request.
+        /// By default, ItemLookup returns an item's ASIN, DetailPageURL, Manufacturer,
+        /// ProductGroup, and Title of the item.
+        /// <p/>
+        /// ItemLookup supports many response groups, so you can retrieve many different
+        /// kinds of product information, called item attributes, including product reviews,
+        /// variations, similar products, pricing, availability, images of products, accessories,
+        /// and other information.
+        /// <p/>
+        /// To look up more than one item at a time, separate the item identifiers by commas.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">ItemLookup request</param>
+        public static void InvokeItemLookup(AmazonECS service, params ItemLookupRequest [] request) 
+        {
+            try 
+            {
+                ItemLookupResponse response = service.ItemLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        ItemLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Items> itemsList = response.Items;
+                foreach (Items items in itemsList) 
+                {
+                    Console.WriteLine("            Items");
+                    if (items.IsSetCorrectedQuery()) 
+                    {
+                        Console.WriteLine("                CorrectedQuery");
+                        CorrectedQuery  correctedQuery = items.CorrectedQuery;
+                        if (correctedQuery.IsSetKeywords()) 
+                        {
+                            Console.WriteLine("                    Keywords");
+                            Console.WriteLine("                        {0}", correctedQuery.Keywords);
+                        }
+                        if (correctedQuery.IsSetMessage()) 
+                        {
+                            Console.WriteLine("                    Message");
+                            Console.WriteLine("                        {0}", correctedQuery.Message);
+                        }
+                    } 
+                    if (items.IsSetQid()) 
+                    {
+                        Console.WriteLine("                Qid");
+                        Console.WriteLine("                    {0}", items.Qid);
+                    }
+                    if (items.IsSetEngineQuery()) 
+                    {
+                        Console.WriteLine("                EngineQuery");
+                        Console.WriteLine("                    {0}", items.EngineQuery);
+                    }
+                    if (items.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", items.TotalResults);
+                    }
+                    if (items.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", items.TotalPages);
+                    }
+                    if (items.IsSetSearchResultsMap()) 
+                    {
+                        Console.WriteLine("                SearchResultsMap");
+                        SearchResultsMap  searchResultsMap = items.SearchResultsMap;
+                        List<SearchResultsMapSearchIndex> searchIndexList = searchResultsMap.SearchIndex;
+                        foreach (SearchResultsMapSearchIndex searchIndex in searchIndexList) 
+                        {
+                            Console.WriteLine("                    SearchIndex");
+                            if (searchIndex.IsSetIndexName()) 
+                            {
+                                Console.WriteLine("                        IndexName");
+                                Console.WriteLine("                            {0}", searchIndex.IndexName);
+                            }
+                            if (searchIndex.IsSetResults()) 
+                            {
+                                Console.WriteLine("                        Results");
+                                Console.WriteLine("                            {0}", searchIndex.Results);
+                            }
+                            if (searchIndex.IsSetPages()) 
+                            {
+                                Console.WriteLine("                        Pages");
+                                Console.WriteLine("                            {0}", searchIndex.Pages);
+                            }
+                            if (searchIndex.IsSetCorrectedQuery()) 
+                            {
+                                Console.WriteLine("                        CorrectedQuery");
+                                CorrectedQuery  correctedQuery = searchIndex.CorrectedQuery;
+                                if (correctedQuery.IsSetKeywords()) 
+                                {
+                                    Console.WriteLine("                            Keywords");
+                                    Console.WriteLine("                                {0}", correctedQuery.Keywords);
+                                }
+                                if (correctedQuery.IsSetMessage()) 
+                                {
+                                    Console.WriteLine("                            Message");
+                                    Console.WriteLine("                                {0}", correctedQuery.Message);
+                                }
+                            } 
+                            if (searchIndex.IsSetRelevanceRank()) 
+                            {
+                                Console.WriteLine("                        RelevanceRank");
+                                Console.WriteLine("                            {0}", searchIndex.RelevanceRank);
+                            }
+                            List<String> ASINList  =  searchIndex.ASIN;
+                            foreach (String ASIN in ASINList) 
+                            { 
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", ASIN);
+                            }	
+                        }
+                    } 
+                    List<Item> itemList = items.Item;
+                    foreach (Item item in itemList) 
+                    {
+                        Console.WriteLine("                Item");
+                        if (item.IsSetAlternateVersions()) 
+                        {
+                            Console.WriteLine("                    AlternateVersions");
+                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                            {
+                                Console.WriteLine("                        AlternateVersion");
+                                if (alternateVersion.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", alternateVersion.ASIN);
+                                }
+                                if (alternateVersion.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", alternateVersion.Title);
+                                }
+                                if (alternateVersion.IsSetBinding()) 
+                                {
+                                    Console.WriteLine("                            Binding");
+                                    Console.WriteLine("                                {0}", alternateVersion.Binding);
+                                }
+                            }
+                        } 
+                        if (item.IsSetASIN()) 
+                        {
+                            Console.WriteLine("                    ASIN");
+                            Console.WriteLine("                        {0}", item.ASIN);
+                        }
+                        if (item.IsSetParentASIN()) 
+                        {
+                            Console.WriteLine("                    ParentASIN");
+                            Console.WriteLine("                        {0}", item.ParentASIN);
+                        }
+                        if (item.IsSetDetailPageURL()) 
+                        {
+                            Console.WriteLine("                    DetailPageURL");
+                            Console.WriteLine("                        {0}", item.DetailPageURL);
+                        }
+                        if (item.IsSetSalesRank()) 
+                        {
+                            Console.WriteLine("                    SalesRank");
+                            Console.WriteLine("                        {0}", item.SalesRank);
+                        }
+                        if (item.IsSetSmallImage()) 
+                        {
+                            Console.WriteLine("                    SmallImage");
+                            Image  smallImage = item.SmallImage;
+                            if (smallImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", smallImage.URL);
+                            }
+                            if (smallImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = smallImage.Height;
+                            } 
+                            if (smallImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = smallImage.Width;
+                            } 
+                            if (smallImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", smallImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetMediumImage()) 
+                        {
+                            Console.WriteLine("                    MediumImage");
+                            Image  mediumImage = item.MediumImage;
+                            if (mediumImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", mediumImage.URL);
+                            }
+                            if (mediumImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = mediumImage.Height;
+                            } 
+                            if (mediumImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = mediumImage.Width;
+                            } 
+                            if (mediumImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", mediumImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetLargeImage()) 
+                        {
+                            Console.WriteLine("                    LargeImage");
+                            Image  largeImage = item.LargeImage;
+                            if (largeImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", largeImage.URL);
+                            }
+                            if (largeImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = largeImage.Height;
+                            } 
+                            if (largeImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = largeImage.Width;
+                            } 
+                            if (largeImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", largeImage.IsVerified);
+                            }
+                        } 
+                        List<ImageSets> imageSetsList = item.ImageSets;
+                        foreach (ImageSets imageSets in imageSetsList) 
+                        {
+                            Console.WriteLine("                    ImageSets");
+                            if (imageSets.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", imageSets.MerchantId);
+                            }
+                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                            foreach (ImageSet imageSet in imageSetList) 
+                            {
+                                Console.WriteLine("                        ImageSet");
+                                if (imageSet.IsSetSwatchImage()) 
+                                {
+                                    Console.WriteLine("                            SwatchImage");
+                                    Image  swatchImage = imageSet.SwatchImage;
+                                    if (swatchImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", swatchImage.URL);
+                                    }
+                                    if (swatchImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = swatchImage.Height;
+                                    } 
+                                    if (swatchImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = swatchImage.Width;
+                                    } 
+                                    if (swatchImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", swatchImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetSmallImage()) 
+                                {
+                                    Console.WriteLine("                            SmallImage");
+                                    Image  smallImage = imageSet.SmallImage;
+                                    if (smallImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", smallImage.URL);
+                                    }
+                                    if (smallImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = smallImage.Height;
+                                    } 
+                                    if (smallImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = smallImage.Width;
+                                    } 
+                                    if (smallImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", smallImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetThumbnailImage()) 
+                                {
+                                    Console.WriteLine("                            ThumbnailImage");
+                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                    if (thumbnailImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.URL);
+                                    }
+                                    if (thumbnailImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                    } 
+                                    if (thumbnailImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                    } 
+                                    if (thumbnailImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetTinyImage()) 
+                                {
+                                    Console.WriteLine("                            TinyImage");
+                                    Image  tinyImage = imageSet.TinyImage;
+                                    if (tinyImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", tinyImage.URL);
+                                    }
+                                    if (tinyImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = tinyImage.Height;
+                                    } 
+                                    if (tinyImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = tinyImage.Width;
+                                    } 
+                                    if (tinyImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", tinyImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetMediumImage()) 
+                                {
+                                    Console.WriteLine("                            MediumImage");
+                                    Image  mediumImage = imageSet.MediumImage;
+                                    if (mediumImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", mediumImage.URL);
+                                    }
+                                    if (mediumImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = mediumImage.Height;
+                                    } 
+                                    if (mediumImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = mediumImage.Width;
+                                    } 
+                                    if (mediumImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", mediumImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetLargeImage()) 
+                                {
+                                    Console.WriteLine("                            LargeImage");
+                                    Image  largeImage = imageSet.LargeImage;
+                                    if (largeImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", largeImage.URL);
+                                    }
+                                    if (largeImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = largeImage.Height;
+                                    } 
+                                    if (largeImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = largeImage.Width;
+                                    } 
+                                    if (largeImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", largeImage.IsVerified);
+                                    }
+                                } 
+                            }
+                        }
+                        if (item.IsSetItemAttributes()) 
+                        {
+                            Console.WriteLine("                    ItemAttributes");
+                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                            List<String> actorList  =  itemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (itemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = itemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            List<String> ageList  =  itemAttributes.Age;
+                            foreach (String age in ageList) 
+                            { 
+                                Console.WriteLine("                        Age");
+                                Console.WriteLine("                            {0}", age);
+                            }	
+                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                            {
+                                Console.WriteLine("                        AnalogVideoFormat");
+                                Console.WriteLine("                            {0}", itemAttributes.AnalogVideoFormat);
+                            }
+                            if (itemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  itemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (itemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", itemAttributes.AspectRatio);
+                            }
+                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyInstructions);
+                            }
+                            if (itemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyRequired);
+                            }
+                            if (itemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  itemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (itemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", itemAttributes.BackFinding);
+                            }
+                            if (itemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BandMaterialType);
+                            }
+                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesIncluded);
+                            }
+                            if (itemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesRequired);
+                            }
+                            if (itemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                            } 
+                            if (itemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryDescription);
+                            }
+                            if (itemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryType);
+                            }
+                            if (itemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BezelMaterialType);
+                            }
+                            if (itemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", itemAttributes.Binding);
+                            }
+                            if (itemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", itemAttributes.Brand);
+                            }
+                            if (itemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", itemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (itemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                            } 
+                            if (itemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseMaterialType);
+                            }
+                            if (itemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                            } 
+                            if (itemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseType);
+                            }
+                            if (itemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.CatalogNumber);
+                            }
+                            List<String> categoryList  =  itemAttributes.Category;
+                            foreach (String category in categoryList) 
+                            { 
+                                Console.WriteLine("                        Category");
+                                Console.WriteLine("                            {0}", category);
+                            }	
+                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                            foreach (String categoryBin in categoryBinList) 
+                            { 
+                                Console.WriteLine("                        CategoryBin");
+                                Console.WriteLine("                            {0}", categoryBin);
+                            }	
+                            if (itemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.CDRWDescription);
+                            }
+                            if (itemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", itemAttributes.ChainType);
+                            }
+                            List<String> characterList  =  itemAttributes.Character;
+                            foreach (String character in characterList) 
+                            { 
+                                Console.WriteLine("                        Character");
+                                Console.WriteLine("                            {0}", character);
+                            }	
+                            if (itemAttributes.IsSetCEROAgeRating()) 
+                            {
+                                Console.WriteLine("                        CEROAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.CEROAgeRating);
+                            }
+                            if (itemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClaspType);
+                            }
+                            if (itemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.ClothingSize);
+                            }
+                            if (itemAttributes.IsSetClubType()) 
+                            {
+                                Console.WriteLine("                        ClubType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClubType);
+                            }
+                            if (itemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", itemAttributes.Color);
+                            }
+                            if (itemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", itemAttributes.Compatibility);
+                            }
+                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                            foreach (String compatibleDevices in compatibleDevicesList) 
+                            { 
+                                Console.WriteLine("                        CompatibleDevices");
+                                Console.WriteLine("                            {0}", compatibleDevices);
+                            }	
+                            if (itemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerHardwareType);
+                            }
+                            if (itemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerPlatform);
+                            }
+                            if (itemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", itemAttributes.Connectivity);
+                            }
+                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (itemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", itemAttributes.Country);
+                            }
+                            if (itemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUManufacturer);
+                            }
+                            if (itemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                            } 
+                            if (itemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = itemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (itemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", itemAttributes.Cuisine);
+                            }
+                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                            { 
+                                Console.WriteLine("                        DataLinkProtocol");
+                                Console.WriteLine("                            {0}", dataLinkProtocol);
+                            }	
+                            if (itemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", itemAttributes.DeliveryOption);
+                            }
+                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                            } 
+                            if (itemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", itemAttributes.Department);
+                            }
+                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.DeweyDecimalNumber);
+                            }
+                            if (itemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", itemAttributes.DialColor);
+                            }
+                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.DialWindowMaterialType);
+                            }
+                            if (itemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  itemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                            {
+                                Console.WriteLine("                        DisplayColorSupport");
+                                Console.WriteLine("                            {0}", itemAttributes.DisplayColorSupport);
+                            }
+                            if (itemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                            } 
+                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (itemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDLayers);
+                            }
+                            if (itemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDRWDescription);
+                            }
+                            if (itemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDSides);
+                            }
+                            if (itemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", itemAttributes.DPCI);
+                            }
+                            if (itemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", itemAttributes.EAN);
+                            }
+                            if (itemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", itemAttributes.Edition);
+                            }
+                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                            foreach (String educationalFocus in educationalFocusList) 
+                            { 
+                                Console.WriteLine("                        EducationalFocus");
+                                Console.WriteLine("                            {0}", educationalFocus);
+                            }	
+                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                            foreach (String ethnicity in ethnicityList) 
+                            { 
+                                Console.WriteLine("                        Ethnicity");
+                                Console.WriteLine("                            {0}", ethnicity);
+                            }	
+                            if (itemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.ESRBAgeRating);
+                            }
+                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (itemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", itemAttributes.FabricType);
+                            }
+                            if (itemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  itemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (itemAttributes.IsSetFilmColorType()) 
+                            {
+                                Console.WriteLine("                        FilmColorType");
+                                Console.WriteLine("                            {0}", itemAttributes.FilmColorType);
+                            }
+                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (itemAttributes.IsSetFlavorName()) 
+                            {
+                                Console.WriteLine("                        FlavorName");
+                                Console.WriteLine("                            {0}", itemAttributes.FlavorName);
+                            }
+                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  itemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                            foreach (String formFactor in formFactorList) 
+                            { 
+                                Console.WriteLine("                        FormFactor");
+                                Console.WriteLine("                            {0}", formFactor);
+                            }	
+                            if (itemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", itemAttributes.GemType);
+                            }
+                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        GemTypeSetElement");
+                                Console.WriteLine("                            {0}", gemTypeSetElement);
+                            }	
+                            List<String> genderList  =  itemAttributes.Gender;
+                            foreach (String gender in genderList) 
+                            { 
+                                Console.WriteLine("                        Gender");
+                                Console.WriteLine("                            {0}", gender);
+                            }	
+                            if (itemAttributes.IsSetGenre()) 
+                            {
+                                Console.WriteLine("                        Genre");
+                                Console.WriteLine("                            {0}", itemAttributes.Genre);
+                            }
+                            if (itemAttributes.IsSetGLProductGroup()) 
+                            {
+                                Console.WriteLine("                        GLProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.GLProductGroup);
+                            }
+                            if (itemAttributes.IsSetGolfClubFlex()) 
+                            {
+                                Console.WriteLine("                        GolfClubFlex");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubFlex);
+                            }
+                            if (itemAttributes.IsSetGolfClubLoft()) 
+                            {
+                                Console.WriteLine("                        GolfClubLoft");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubLoft);
+                            }
+                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsCardInterface);
+                            }
+                            if (itemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsDescription);
+                            }
+                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                            } 
+                            if (itemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarAttribute);
+                            }
+                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarBridgeSystem);
+                            }
+                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickThickness);
+                            }
+                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (itemAttributes.IsSetHandOrientation()) 
+                            {
+                                Console.WriteLine("                        HandOrientation");
+                                Console.WriteLine("                            {0}", itemAttributes.HandOrientation);
+                            }
+                            if (itemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskCount);
+                            }
+                            if (itemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                            } 
+                            if (itemAttributes.IsSetHardDiskInterface()) 
+                            {
+                                Console.WriteLine("                        HardDiskInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskInterface);
+                            }
+                            if (itemAttributes.IsSetHardwarePlatform()) 
+                            {
+                                Console.WriteLine("                        HardwarePlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.HardwarePlatform);
+                            }
+                            if (itemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", itemAttributes.HasAutoFocus);
+                            }
+                            if (itemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", itemAttributes.HasBurstMode);
+                            }
+                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", itemAttributes.HasInCameraEditing);
+                            }
+                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", itemAttributes.HasRedEyeReduction);
+                            }
+                            if (itemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", itemAttributes.HasSelfTimer);
+                            }
+                            if (itemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", itemAttributes.HasTripodMount);
+                            }
+                            if (itemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", itemAttributes.HasVideoOut);
+                            }
+                            if (itemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", itemAttributes.HasViewfinder);
+                            }
+                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.HazardousMaterialType);
+                            }
+                            if (itemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", itemAttributes.HoursOfOperation);
+                            }
+                            if (itemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludedSoftware);
+                            }
+                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludesMp3Player);
+                            }
+                            if (itemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", itemAttributes.Ingredients);
+                            }
+                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                            { 
+                                Console.WriteLine("                        IngredientsSetElement");
+                                Console.WriteLine("                            {0}", ingredientsSetElement);
+                            }	
+                            if (itemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", itemAttributes.InstrumentKey);
+                            }
+                            List<String> interestList  =  itemAttributes.Interest;
+                            foreach (String interest in interestList) 
+                            { 
+                                Console.WriteLine("                        Interest");
+                                Console.WriteLine("                            {0}", interest);
+                            }	
+                            if (itemAttributes.IsSetIsAdultProduct()) 
+                            {
+                                Console.WriteLine("                        IsAdultProduct");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAdultProduct);
+                            }
+                            if (itemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAutographed);
+                            }
+                            if (itemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", itemAttributes.ISBN);
+                            }
+                            if (itemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", itemAttributes.IsFragile);
+                            }
+                            if (itemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", itemAttributes.IsLabCreated);
+                            }
+                            if (itemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", itemAttributes.IsMemorabilia);
+                            }
+                            if (itemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                            } 
+                            if (itemAttributes.IsSetIsPreannounce()) 
+                            {
+                                Console.WriteLine("                        IsPreannounce");
+                                Console.WriteLine("                            {0}", itemAttributes.IsPreannounce);
+                            }
+                            if (itemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", itemAttributes.IssuesPerYear);
+                            }
+                            if (itemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.KeyboardDescription);
+                            }
+                            if (itemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", itemAttributes.Label);
+                            }
+                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                            foreach (String languageName in languageNameList) 
+                            { 
+                                Console.WriteLine("                        LanguageName");
+                                Console.WriteLine("                            {0}", languageName);
+                            }	
+                            if (itemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = itemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", itemAttributes.LegalDisclaimer);
+                            }
+                            if (itemAttributes.IsSetLensType()) 
+                            {
+                                Console.WriteLine("                        LensType");
+                                Console.WriteLine("                            {0}", itemAttributes.LensType);
+                            }
+                            if (itemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", itemAttributes.LineVoltage);
+                            }
+                            if (itemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = itemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", itemAttributes.MacroFocusRange);
+                            }
+                            if (itemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", itemAttributes.MagazineType);
+                            }
+                            if (itemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", itemAttributes.MalletHardness);
+                            }
+                            if (itemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.Manufacturer);
+                            }
+                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.MaterialType);
+                            }
+                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        MaterialTypeSetElement");
+                                Console.WriteLine("                            {0}", materialTypeSetElement);
+                            }	
+                            if (itemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                            } 
+                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumColorDepth);
+                            }
+                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (itemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (itemAttributes.IsSetMediaType()) 
+                            {
+                                Console.WriteLine("                        MediaType");
+                                Console.WriteLine("                            {0}", itemAttributes.MediaType);
+                            }
+                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", itemAttributes.MemorySlotsAvailable);
+                            }
+                            if (itemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalStamp);
+                            }
+                            if (itemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalType);
+                            }
+                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MiniMovieDescription);
+                            }
+                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", itemAttributes.Model);
+                            }
+                            if (itemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", itemAttributes.ModelYear);
+                            }
+                            if (itemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ModemDescription);
+                            }
+                            if (itemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                            } 
+                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (itemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MouseDescription);
+                            }
+                            if (itemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", itemAttributes.MPN);
+                            }
+                            if (itemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", itemAttributes.MusicalStyle);
+                            }
+                            if (itemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", itemAttributes.NativeResolution);
+                            }
+                            if (itemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", itemAttributes.Neighborhood);
+                            }
+                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfDiscs);
+                            }
+                            if (itemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfIssues);
+                            }
+                            if (itemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfItems);
+                            }
+                            if (itemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfKeys);
+                            }
+                            if (itemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPages);
+                            }
+                            if (itemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPearls);
+                            }
+                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (itemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStones);
+                            }
+                            if (itemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStrings);
+                            }
+                            if (itemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfTracks);
+                            }
+                            if (itemAttributes.IsSetOperatingSystem()) 
+                            {
+                                Console.WriteLine("                        OperatingSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.OperatingSystem);
+                            }
+                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                            {
+                                Console.WriteLine("                        OpticalSensorResolution");
+                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                            } 
+                            if (itemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                            } 
+                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.OriginalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", itemAttributes.OutputWattage);
+                            }
+                            if (itemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetPackageQuantity()) 
+                            {
+                                Console.WriteLine("                        PackageQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.PackageQuantity);
+                            }
+                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                            foreach (String pantLength in pantLengthList) 
+                            { 
+                                Console.WriteLine("                        PantLength");
+                                Console.WriteLine("                            {0}", pantLength);
+                            }	
+                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                            foreach (String pantSize in pantSizeList) 
+                            { 
+                                Console.WriteLine("                        PantSize");
+                                Console.WriteLine("                            {0}", pantSize);
+                            }	
+                            if (itemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlLustre);
+                            }
+                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlMinimumColor);
+                            }
+                            if (itemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlShape);
+                            }
+                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlStringingMethod);
+                            }
+                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (itemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlType);
+                            }
+                            if (itemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlUniformity);
+                            }
+                            if (itemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  itemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (itemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.PriceRating);
+                            }
+                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                            foreach (String primaryColor in primaryColorList) 
+                            { 
+                                Console.WriteLine("                        PrimaryColor");
+                                Console.WriteLine("                            {0}", primaryColor);
+                            }	
+                            if (itemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", itemAttributes.ProcessorCount);
+                            }
+                            if (itemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductGroup);
+                            }
+                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                            {
+                                Console.WriteLine("                        ProductSiteLaunchDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductSiteLaunchDate);
+                            }
+                            if (itemAttributes.IsSetProductTypeName()) 
+                            {
+                                Console.WriteLine("                        ProductTypeName");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeName);
+                            }
+                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                            {
+                                Console.WriteLine("                        ProductTypeSubcategory");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeSubcategory);
+                            }
+                            if (itemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", itemAttributes.PromotionalTag);
+                            }
+                            if (itemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", itemAttributes.PublicationDate);
+                            }
+                            if (itemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", itemAttributes.Publisher);
+                            }
+                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", itemAttributes.POBoxShippingExcluded);
+                            }
+                            if (itemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.ReadingLevel);
+                            }
+                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", itemAttributes.RecorderTrackCount);
+                            }
+                            if (itemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionCode);
+                            }
+                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionOfOrigin);
+                            }
+                            if (itemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", itemAttributes.ReturnPolicy);
+                            }
+                            if (itemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ReleaseDate);
+                            }
+                            if (itemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableMemory);
+                            }
+                            if (itemAttributes.IsSetRemovableStorage()) 
+                            {
+                                Console.WriteLine("                        RemovableStorage");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableStorage);
+                            }
+                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                            {
+                                Console.WriteLine("                        RequiredVoltageRange");
+                                Console.WriteLine("                            {0}", itemAttributes.RequiredVoltageRange);
+                            }
+                            if (itemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ResolutionModes);
+                            }
+                            if (itemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.RingSize);
+                            }
+                            if (itemAttributes.IsSetRunningTime()) 
+                            {
+                                Console.WriteLine("                        RunningTime");
+                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                            } 
+                            if (itemAttributes.IsSetScentName()) 
+                            {
+                                Console.WriteLine("                        ScentName");
+                                Console.WriteLine("                            {0}", itemAttributes.ScentName);
+                            }
+                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                            } 
+                            if (itemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", itemAttributes.SettingType);
+                            }
+                            if (itemAttributes.IsSetShaftMaterialType()) 
+                            {
+                                Console.WriteLine("                        ShaftMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.ShaftMaterialType);
+                            }
+                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                            foreach (String shoeSize in shoeSizeList) 
+                            { 
+                                Console.WriteLine("                        ShoeSize");
+                                Console.WriteLine("                            {0}", shoeSize);
+                            }	
+                            if (itemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", itemAttributes.Size);
+                            }
+                            if (itemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", itemAttributes.SizePerPearl);
+                            }
+                            if (itemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.SkillLevel);
+                            }
+                            if (itemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", itemAttributes.SKU);
+                            }
+                            if (itemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", itemAttributes.SoldInStores);
+                            }
+                            if (itemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SoundCardDescription);
+                            }
+                            if (itemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerCount);
+                            }
+                            if (itemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (itemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneClarity);
+                            }
+                            if (itemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneColor);
+                            }
+                            if (itemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneCut);
+                            }
+                            if (itemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneShape);
+                            }
+                            if (itemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                            } 
+                            if (itemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", itemAttributes.Studio);
+                            }
+                            if (itemAttributes.IsSetStyle()) 
+                            {
+                                Console.WriteLine("                        Style");
+                                Console.WriteLine("                            {0}", itemAttributes.Style);
+                            }
+                            if (itemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                            {
+                                Console.WriteLine("                        SupportedMediaSize");
+                                Console.WriteLine("                            {0}", itemAttributes.SupportedMediaSize);
+                            }
+                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                            } 
+                            if (itemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", itemAttributes.SystemMemoryType);
+                            }
+                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                            foreach (String targetBrand in targetBrandList) 
+                            { 
+                                Console.WriteLine("                        TargetBrand");
+                                Console.WriteLine("                            {0}", targetBrand);
+                            }	
+                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", itemAttributes.TellingPageIndicator);
+                            }
+                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.TheatricalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", itemAttributes.Title);
+                            }
+                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalExternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalFirewirePorts);
+                            }
+                            if (itemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalInternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalParallelPorts);
+                            }
+                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCCardSlots);
+                            }
+                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCISlotsFree);
+                            }
+                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSerialPorts);
+                            }
+                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSB2Ports);
+                            }
+                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSBPorts);
+                            }
+                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalVGAOutPorts);
+                            }
+                            if (itemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", itemAttributes.UPC);
+                            }
+                            if (itemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDenomination);
+                            }
+                            if (itemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDescription);
+                            }
+                            if (itemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", itemAttributes.Warranty);
+                            }
+                            if (itemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", itemAttributes.WatchMovementType);
+                            }
+                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                            } 
+                            if (itemAttributes.IsSetWEEETaxValue()) 
+                            {
+                                Console.WriteLine("                        WEEETaxValue");
+                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                if (WEEETaxValue.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.Amount);
+                                }
+                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.CurrencyCode);
+                                }
+                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetMerchantItemAttributes()) 
+                        {
+                            Console.WriteLine("                    MerchantItemAttributes");
+                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                            List<String> actorList  =  merchantItemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (merchantItemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = merchantItemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  merchantItemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AspectRatio);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyInstructions);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyRequired);
+                            }
+                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  merchantItemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (merchantItemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BackFinding);
+                            }
+                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BandMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesIncluded);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesRequired);
+                            }
+                            if (merchantItemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                            } 
+                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryDescription);
+                            }
+                            if (merchantItemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryType);
+                            }
+                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BezelMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Binding);
+                            }
+                            if (merchantItemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Brand);
+                            }
+                            if (merchantItemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseType);
+                            }
+                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CatalogNumber);
+                            }
+                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ChainType);
+                            }
+                            if (merchantItemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClaspType);
+                            }
+                            if (merchantItemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClothingSize);
+                            }
+                            if (merchantItemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Color);
+                            }
+                            if (merchantItemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Compatibility);
+                            }
+                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerHardwareType);
+                            }
+                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerPlatform);
+                            }
+                            if (merchantItemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Connectivity);
+                            }
+                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Country);
+                            }
+                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                            {
+                                Console.WriteLine("                        CountryOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CountryOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUManufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (merchantItemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Cuisine);
+                            }
+                            if (merchantItemAttributes.IsSetCustomizable()) 
+                            {
+                                Console.WriteLine("                        Customizable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Customizable);
+                            }
+                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                            } 
+                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeliveryOption);
+                            }
+                            if (merchantItemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Department);
+                            }
+                            if (merchantItemAttributes.IsSetDescription()) 
+                            {
+                                Console.WriteLine("                        Description");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Description);
+                            }
+                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                            }
+                            if (merchantItemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialColor);
+                            }
+                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  merchantItemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                            } 
+                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDLayers);
+                            }
+                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDSides);
+                            }
+                            if (merchantItemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DPCI);
+                            }
+                            if (merchantItemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.EAN);
+                            }
+                            if (merchantItemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Edition);
+                            }
+                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ESRBAgeRating);
+                            }
+                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (merchantItemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FabricType);
+                            }
+                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  merchantItemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  merchantItemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                            {
+                                Console.WriteLine("                        FixedShippingCharge");
+                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                if (fixedShippingCharge.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.Amount);
+                                }
+                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.CurrencyCode);
+                                }
+                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GemType);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsDescription);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarAttribute);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickThickness);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HardDiskCount);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                            } 
+                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasAutoFocus);
+                            }
+                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasBurstMode);
+                            }
+                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasInCameraEditing);
+                            }
+                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                            }
+                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasSelfTimer);
+                            }
+                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasTripodMount);
+                            }
+                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasVideoOut);
+                            }
+                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasViewfinder);
+                            }
+                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HazardousMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HoursOfOperation);
+                            }
+                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludedSoftware);
+                            }
+                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludesMp3Player);
+                            }
+                            if (merchantItemAttributes.IsSetIndications()) 
+                            {
+                                Console.WriteLine("                        Indications");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Indications);
+                            }
+                            if (merchantItemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Ingredients);
+                            }
+                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.InstrumentKey);
+                            }
+                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsAutographed);
+                            }
+                            if (merchantItemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ISBN);
+                            }
+                            if (merchantItemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsFragile);
+                            }
+                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsLabCreated);
+                            }
+                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsMemorabilia);
+                            }
+                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                            } 
+                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IssuesPerYear);
+                            }
+                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.KeyboardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Label);
+                            }
+                            if (merchantItemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = merchantItemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LegalDisclaimer);
+                            }
+                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LineVoltage);
+                            }
+                            if (merchantItemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MacroFocusRange);
+                            }
+                            if (merchantItemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MagazineType);
+                            }
+                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MalletHardness);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Manufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumColorDepth);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                            }
+                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalStamp);
+                            }
+                            if (merchantItemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalType);
+                            }
+                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MiniMovieDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Model);
+                            }
+                            if (merchantItemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModelYear);
+                            }
+                            if (merchantItemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModemDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MouseDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MPN);
+                            }
+                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MusicalStyle);
+                            }
+                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NativeResolution);
+                            }
+                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Neighborhood);
+                            }
+                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfDiscs);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfIssues);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfItems);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfKeys);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPages);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPearls);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStones);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStrings);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfTracks);
+                            }
+                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                            } 
+                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OutputWattage);
+                            }
+                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlLustre);
+                            }
+                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlMinimumColor);
+                            }
+                            if (merchantItemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlShape);
+                            }
+                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlStringingMethod);
+                            }
+                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (merchantItemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlType);
+                            }
+                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlUniformity);
+                            }
+                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  merchantItemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (merchantItemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PriceRating);
+                            }
+                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProcessorCount);
+                            }
+                            if (merchantItemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProductGroup);
+                            }
+                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PromotionalTag);
+                            }
+                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                            }
+                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PublicationDate);
+                            }
+                            if (merchantItemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Publisher);
+                            }
+                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                            foreach (String purchasingChannel in purchasingChannelList) 
+                            { 
+                                Console.WriteLine("                        PurchasingChannel");
+                                Console.WriteLine("                            {0}", purchasingChannel);
+                            }	
+                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReadingLevel);
+                            }
+                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RecorderTrackCount);
+                            }
+                            if (merchantItemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionCode);
+                            }
+                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReleaseDate);
+                            }
+                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RemovableMemory);
+                            }
+                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ResolutionModes);
+                            }
+                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReturnPolicy);
+                            }
+                            if (merchantItemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RingSize);
+                            }
+                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                            {
+                                Console.WriteLine("                        SafetyWarning");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SafetyWarning);
+                            }
+                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                            {
+                                Console.WriteLine("                        SalesRestriction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SalesRestriction);
+                            }
+                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                            } 
+                            if (merchantItemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SettingType);
+                            }
+                            if (merchantItemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Size);
+                            }
+                            if (merchantItemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SKU);
+                            }
+                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoldInStores);
+                            }
+                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SizePerPearl);
+                            }
+                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SkillLevel);
+                            }
+                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoundCardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerCount);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneClarity);
+                            }
+                            if (merchantItemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneColor);
+                            }
+                            if (merchantItemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneCut);
+                            }
+                            if (merchantItemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneShape);
+                            }
+                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Studio);
+                            }
+                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SystemMemoryType);
+                            }
+                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TellingPageIndicator);
+                            }
+                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Title);
+                            }
+                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalParallelPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSerialPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSBPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.UPC);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDenomination);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDescription);
+                            }
+                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                            {
+                                Console.WriteLine("                        VendorRebate");
+                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                if (vendorRebate.IsSetType()) 
+                                {
+                                    Console.WriteLine("                            Type");
+                                    Console.WriteLine("                                {0}", vendorRebate.Type);
+                                }
+                                if (vendorRebate.IsSetStartDate()) 
+                                {
+                                    Console.WriteLine("                            StartDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.StartDate);
+                                }
+                                if (vendorRebate.IsSetEndDate()) 
+                                {
+                                    Console.WriteLine("                            EndDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.EndDate);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Warranty);
+                            }
+                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WatchMovementType);
+                            }
+                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                            {
+                                Console.WriteLine("                        WebsiteBuyability");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WebsiteBuyability);
+                            }
+                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                            } 
+                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetCollections()) 
+                        {
+                            Console.WriteLine("                    Collections");
+                            Collections  collections = item.Collections;
+                            List<CollectionsCollection> collectionList = collections.Collection;
+                            foreach (CollectionsCollection collection in collectionList) 
+                            {
+                                Console.WriteLine("                        Collection");
+                                if (collection.IsSetCollectionSummary()) 
+                                {
+                                    Console.WriteLine("                            CollectionSummary");
+                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestListPrice");
+                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                        if (lowestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.Amount);
+                                        }
+                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.CurrencyCode);
+                                        }
+                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestListPrice");
+                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                        if (highestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestListPrice.Amount);
+                                        }
+                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestListPrice.CurrencyCode);
+                                        }
+                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestSalePrice");
+                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                        if (lowestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.Amount);
+                                        }
+                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.CurrencyCode);
+                                        }
+                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestSalePrice");
+                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                        if (highestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.Amount);
+                                        }
+                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.CurrencyCode);
+                                        }
+                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (collection.IsSetCollectionParent()) 
+                                {
+                                    Console.WriteLine("                            CollectionParent");
+                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                    if (collectionParent.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionParent.ASIN);
+                                    }
+                                    if (collectionParent.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionParent.Title);
+                                    }
+                                } 
+                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                {
+                                    Console.WriteLine("                            CollectionItem");
+                                    if (collectionItem.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionItem.ASIN);
+                                    }
+                                    if (collectionItem.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionItem.Title);
+                                    }
+                                }
+                            }
+                        } 
+                        if (item.IsSetSubjects()) 
+                        {
+                            Console.WriteLine("                    Subjects");
+                            Subjects  subjects = item.Subjects;
+                            List<String> subjectList  =  subjects.Subject;
+                            foreach (String subject in subjectList) 
+                            { 
+                                Console.WriteLine("                        Subject");
+                                Console.WriteLine("                            {0}", subject);
+                            }	
+                        } 
+                        if (item.IsSetOfferSummary()) 
+                        {
+                            Console.WriteLine("                    OfferSummary");
+                            OfferSummary  offerSummary = item.OfferSummary;
+                            if (offerSummary.IsSetLowestNewPrice()) 
+                            {
+                                Console.WriteLine("                        LowestNewPrice");
+                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                if (lowestNewPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.Amount);
+                                }
+                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.CurrencyCode);
+                                }
+                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestUsedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestUsedPrice");
+                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                if (lowestUsedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.Amount);
+                                }
+                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.CurrencyCode);
+                                }
+                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                            {
+                                Console.WriteLine("                        LowestCollectiblePrice");
+                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.Amount);
+                                }
+                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                }
+                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestRefurbishedPrice");
+                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.Amount);
+                                }
+                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                }
+                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetTotalNew()) 
+                            {
+                                Console.WriteLine("                        TotalNew");
+                                Console.WriteLine("                            {0}", offerSummary.TotalNew);
+                            }
+                            if (offerSummary.IsSetTotalUsed()) 
+                            {
+                                Console.WriteLine("                        TotalUsed");
+                                Console.WriteLine("                            {0}", offerSummary.TotalUsed);
+                            }
+                            if (offerSummary.IsSetTotalCollectible()) 
+                            {
+                                Console.WriteLine("                        TotalCollectible");
+                                Console.WriteLine("                            {0}", offerSummary.TotalCollectible);
+                            }
+                            if (offerSummary.IsSetTotalRefurbished()) 
+                            {
+                                Console.WriteLine("                        TotalRefurbished");
+                                Console.WriteLine("                            {0}", offerSummary.TotalRefurbished);
+                            }
+                        } 
+                        if (item.IsSetOffers()) 
+                        {
+                            Console.WriteLine("                    Offers");
+                            Offers  offers = item.Offers;
+                            if (offers.IsSetTotalOffers()) 
+                            {
+                                Console.WriteLine("                        TotalOffers");
+                                Console.WriteLine("                            {0}", offers.TotalOffers);
+                            }
+                            if (offers.IsSetTotalOfferPages()) 
+                            {
+                                Console.WriteLine("                        TotalOfferPages");
+                                Console.WriteLine("                            {0}", offers.TotalOfferPages);
+                            }
+                            List<Offer> offerList = offers.Offer;
+                            foreach (Offer offer in offerList) 
+                            {
+                                Console.WriteLine("                        Offer");
+                                if (offer.IsSetMerchant()) 
+                                {
+                                    Console.WriteLine("                            Merchant");
+                                    Merchant  merchant = offer.Merchant;
+                                    if (merchant.IsSetMerchantId()) 
+                                    {
+                                        Console.WriteLine("                                MerchantId");
+                                        Console.WriteLine("                                    {0}", merchant.MerchantId);
+                                    }
+                                    if (merchant.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", merchant.Name);
+                                    }
+                                    if (merchant.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", merchant.GlancePage);
+                                    }
+                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", merchant.AverageFeedbackRating);
+                                    }
+                                    if (merchant.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedback);
+                                    }
+                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedbackPages);
+                                    }
+                                } 
+                                if (offer.IsSetSeller()) 
+                                {
+                                    Console.WriteLine("                            Seller");
+                                    Seller  seller = offer.Seller;
+                                    if (seller.IsSetSellerId()) 
+                                    {
+                                        Console.WriteLine("                                SellerId");
+                                        Console.WriteLine("                                    {0}", seller.SellerId);
+                                    }
+                                    if (seller.IsSetSellerName()) 
+                                    {
+                                        Console.WriteLine("                                SellerName");
+                                        Console.WriteLine("                                    {0}", seller.SellerName);
+                                    }
+                                    if (seller.IsSetSellerLegalName()) 
+                                    {
+                                        Console.WriteLine("                                SellerLegalName");
+                                        Console.WriteLine("                                    {0}", seller.SellerLegalName);
+                                    }
+                                    if (seller.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", seller.Nickname);
+                                    }
+                                    if (seller.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", seller.GlancePage);
+                                    }
+                                    if (seller.IsSetAbout()) 
+                                    {
+                                        Console.WriteLine("                                About");
+                                        Console.WriteLine("                                    {0}", seller.About);
+                                    }
+                                    if (seller.IsSetMoreAbout()) 
+                                    {
+                                        Console.WriteLine("                                MoreAbout");
+                                        Console.WriteLine("                                    {0}", seller.MoreAbout);
+                                    }
+                                    if (seller.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        SellerLocation  location = seller.Location;
+                                        if (location.IsSetUserDefinedLocation()) 
+                                        {
+                                            Console.WriteLine("                                    UserDefinedLocation");
+                                            Console.WriteLine("                                        {0}", location.UserDefinedLocation);
+                                        }
+                                        if (location.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", location.City);
+                                        }
+                                        if (location.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", location.State);
+                                        }
+                                        if (location.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", location.Country);
+                                        }
+                                    } 
+                                    if (seller.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", seller.AverageFeedbackRating);
+                                    }
+                                    if (seller.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedback);
+                                    }
+                                    if (seller.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedbackPages);
+                                    }
+                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedbackSummary");
+                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                        {
+                                            Console.WriteLine("                                    FeedbackDateRange");
+                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                            {
+                                                Console.WriteLine("                                        SellerFeedbackRating");
+                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                {
+                                                    Console.WriteLine("                                            Count");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Count);
+                                                }
+                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                {
+                                                    Console.WriteLine("                                            Percentage");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Percentage);
+                                                }
+                                            }
+                                        }
+                                    } 
+                                    if (seller.IsSetSellerFeedback()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedback");
+                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                        foreach (Feedback feedback in feedbackList) 
+                                        {
+                                            Console.WriteLine("                                    Feedback");
+                                            if (feedback.IsSetRating()) 
+                                            {
+                                                Console.WriteLine("                                        Rating");
+                                                Console.WriteLine("                                            {0}", feedback.Rating);
+                                            }
+                                            if (feedback.IsSetComment()) 
+                                            {
+                                                Console.WriteLine("                                        Comment");
+                                                Console.WriteLine("                                            {0}", feedback.Comment);
+                                            }
+                                            if (feedback.IsSetDate()) 
+                                            {
+                                                Console.WriteLine("                                        Date");
+                                                Console.WriteLine("                                            {0}", feedback.Date);
+                                            }
+                                            if (feedback.IsSetRatedBy()) 
+                                            {
+                                                Console.WriteLine("                                        RatedBy");
+                                                Console.WriteLine("                                            {0}", feedback.RatedBy);
+                                            }
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetOfferAttributes()) 
+                                {
+                                    Console.WriteLine("                            OfferAttributes");
+                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                    if (offerAttributes.IsSetCondition()) 
+                                    {
+                                        Console.WriteLine("                                Condition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.Condition);
+                                    }
+                                    if (offerAttributes.IsSetSubCondition()) 
+                                    {
+                                        Console.WriteLine("                                SubCondition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.SubCondition);
+                                    }
+                                    if (offerAttributes.IsSetConditionNote()) 
+                                    {
+                                        Console.WriteLine("                                ConditionNote");
+                                        Console.WriteLine("                                    {0}", offerAttributes.ConditionNote);
+                                    }
+                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                    {
+                                        Console.WriteLine("                                WillShipExpedited");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipExpedited);
+                                    }
+                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                    {
+                                        Console.WriteLine("                                WillShipInternational");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipInternational);
+                                    }
+                                } 
+                                List<OfferListing> offerListingList = offer.OfferListing;
+                                foreach (OfferListing offerListing in offerListingList) 
+                                {
+                                    Console.WriteLine("                            OfferListing");
+                                    if (offerListing.IsSetOfferListingId()) 
+                                    {
+                                        Console.WriteLine("                                OfferListingId");
+                                        Console.WriteLine("                                    {0}", offerListing.OfferListingId);
+                                    }
+                                    if (offerListing.IsSetExchangeId()) 
+                                    {
+                                        Console.WriteLine("                                ExchangeId");
+                                        Console.WriteLine("                                    {0}", offerListing.ExchangeId);
+                                    }
+                                    if (offerListing.IsSetPrice()) 
+                                    {
+                                        Console.WriteLine("                                Price");
+                                        Price  price = offerListing.Price;
+                                        if (price.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", price.Amount);
+                                        }
+                                        if (price.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", price.CurrencyCode);
+                                        }
+                                        if (price.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", price.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                SalePrice");
+                                        Price  salePrice = offerListing.SalePrice;
+                                        if (salePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", salePrice.Amount);
+                                        }
+                                        if (salePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", salePrice.CurrencyCode);
+                                        }
+                                        if (salePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", salePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetAmountSaved()) 
+                                    {
+                                        Console.WriteLine("                                AmountSaved");
+                                        Price  amountSaved = offerListing.AmountSaved;
+                                        if (amountSaved.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", amountSaved.Amount);
+                                        }
+                                        if (amountSaved.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", amountSaved.CurrencyCode);
+                                        }
+                                        if (amountSaved.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", amountSaved.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetPercentageSaved()) 
+                                    {
+                                        Console.WriteLine("                                PercentageSaved");
+                                        Console.WriteLine("                                    {0}", offerListing.PercentageSaved);
+                                    }
+                                    if (offerListing.IsSetAvailability()) 
+                                    {
+                                        Console.WriteLine("                                Availability");
+                                        Console.WriteLine("                                    {0}", offerListing.Availability);
+                                    }
+                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                    {
+                                        Console.WriteLine("                                AvailabilityAttributes");
+                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                        {
+                                            Console.WriteLine("                                    AvailabilityType");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.AvailabilityType);
+                                        }
+                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                        {
+                                            Console.WriteLine("                                    IsPreorder");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.IsPreorder);
+                                        }
+                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MinimumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MinimumHours);
+                                        }
+                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MaximumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MaximumHours);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetQuantity()) 
+                                    {
+                                        Console.WriteLine("                                Quantity");
+                                        Console.WriteLine("                                    {0}", offerListing.Quantity);
+                                    }
+                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreAddress");
+                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                        if (ISPUStoreAddress.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Name);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                        {
+                                            Console.WriteLine("                                    Address1");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address1);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                        {
+                                            Console.WriteLine("                                    Address2");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address2);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                        {
+                                            Console.WriteLine("                                    Address3");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address3);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.City);
+                                        }
+                                        if (ISPUStoreAddress.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.State);
+                                        }
+                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                        {
+                                            Console.WriteLine("                                    PostalCode");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.PostalCode);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Country);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetISPUStoreHours()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreHours");
+                                        Console.WriteLine("                                    {0}", offerListing.ISPUStoreHours);
+                                    }
+                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                    {
+                                        Console.WriteLine("                                IsEligibleForSuperSaverShipping");
+                                        Console.WriteLine("                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                    }
+                                    if (offerListing.IsSetSalesRestriction()) 
+                                    {
+                                        Console.WriteLine("                                SalesRestriction");
+                                        Console.WriteLine("                                    {0}", offerListing.SalesRestriction);
+                                    }
+                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                    {
+                                        Console.WriteLine("                                ShippingCharge");
+                                        if (shippingCharge.IsSetShippingType()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingType");
+                                            Console.WriteLine("                                        {0}", shippingCharge.ShippingType);
+                                        }
+                                        if (shippingCharge.IsSetShippingPrice()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingPrice");
+                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                            if (shippingPrice.IsSetAmount()) 
+                                            {
+                                                Console.WriteLine("                                        Amount");
+                                                Console.WriteLine("                                            {0}", shippingPrice.Amount);
+                                            }
+                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                            {
+                                                Console.WriteLine("                                        CurrencyCode");
+                                                Console.WriteLine("                                            {0}", shippingPrice.CurrencyCode);
+                                            }
+                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        FormattedPrice");
+                                                Console.WriteLine("                                            {0}", shippingPrice.FormattedPrice);
+                                            }
+                                        } 
+                                    }
+                                }
+                                if (offer.IsSetLoyaltyPoints()) 
+                                {
+                                    Console.WriteLine("                            LoyaltyPoints");
+                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                    if (loyaltyPoints.IsSetPoints()) 
+                                    {
+                                        Console.WriteLine("                                Points");
+                                        Console.WriteLine("                                    {0}", loyaltyPoints.Points);
+                                    }
+                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                    {
+                                        Console.WriteLine("                                TypicalRedemptionValue");
+                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.Amount);
+                                        }
+                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                        }
+                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetPromotions()) 
+                                {
+                                    Console.WriteLine("                            Promotions");
+                                    Promotions  promotions = offer.Promotions;
+                                    List<Promotion> promotionList = promotions.Promotion;
+                                    foreach (Promotion promotion in promotionList) 
+                                    {
+                                        Console.WriteLine("                                Promotion");
+                                        if (promotion.IsSetSummary()) 
+                                        {
+                                            Console.WriteLine("                                    Summary");
+                                            PromotionSummary  summary = promotion.Summary;
+                                            if (summary.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", summary.PromotionId);
+                                            }
+                                            if (summary.IsSetCategory()) 
+                                            {
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", summary.Category);
+                                            }
+                                            if (summary.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", summary.StartDate);
+                                            }
+                                            if (summary.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", summary.EndDate);
+                                            }
+                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirementDescription");
+                                                Console.WriteLine("                                            {0}", summary.EligibilityRequirementDescription);
+                                            }
+                                            if (summary.IsSetBenefitDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BenefitDescription");
+                                                Console.WriteLine("                                            {0}", summary.BenefitDescription);
+                                            }
+                                            if (summary.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", summary.TermsAndConditions);
+                                            }
+                                        } 
+                                        if (promotion.IsSetDetails()) 
+                                        {
+                                            Console.WriteLine("                                    Details");
+                                            PromotionDetails  details = promotion.Details;
+                                            if (details.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", details.MerchantId);
+                                            }
+                                            if (details.IsSetOwningMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        OwningMerchantId");
+                                                Console.WriteLine("                                            {0}", details.OwningMerchantId);
+                                            }
+                                            if (details.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", details.PromotionId);
+                                            }
+                                            if (details.IsSetPromotionCategory()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionCategory");
+                                                Console.WriteLine("                                            {0}", details.PromotionCategory);
+                                            }
+                                            if (details.IsSetMerchantPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantPromotionId");
+                                                Console.WriteLine("                                            {0}", details.MerchantPromotionId);
+                                            }
+                                            if (details.IsSetGroupClaimCode()) 
+                                            {
+                                                Console.WriteLine("                                        GroupClaimCode");
+                                                Console.WriteLine("                                            {0}", details.GroupClaimCode);
+                                            }
+                                            if (details.IsSetCouponCombinationType()) 
+                                            {
+                                                Console.WriteLine("                                        CouponCombinationType");
+                                                Console.WriteLine("                                            {0}", details.CouponCombinationType);
+                                            }
+                                            if (details.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", details.StartDate);
+                                            }
+                                            if (details.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", details.EndDate);
+                                            }
+                                            if (details.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", details.TermsAndConditions);
+                                            }
+                                            if (details.IsSetEligibilityRequirements()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirements");
+                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                {
+                                                    Console.WriteLine("                                            EligibilityRequirement");
+                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                    {
+                                                        Console.WriteLine("                                                EligibilityRequirementType");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.Quantity);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                CurrencyAmount");
+                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                        if (currencyAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.Amount);
+                                                        }
+                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.CurrencyCode);
+                                                        }
+                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetBenefits()) 
+                                            {
+                                                Console.WriteLine("                                        Benefits");
+                                                PromotionBenefits  benefits = details.Benefits;
+                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                {
+                                                    Console.WriteLine("                                            Benefit");
+                                                    if (benefit.IsSetBenefitType()) 
+                                                    {
+                                                        Console.WriteLine("                                                BenefitType");
+                                                        Console.WriteLine("                                                    {0}", benefit.BenefitType);
+                                                    }
+                                                    if (benefit.IsSetComponentType()) 
+                                                    {
+                                                        Console.WriteLine("                                                ComponentType");
+                                                        Console.WriteLine("                                                    {0}", benefit.ComponentType);
+                                                    }
+                                                    if (benefit.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", benefit.Quantity);
+                                                    }
+                                                    if (benefit.IsSetPercentOff()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentOff");
+                                                        Console.WriteLine("                                                    {0}", benefit.PercentOff);
+                                                    }
+                                                    if (benefit.IsSetFixedAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                FixedAmount");
+                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                        if (fixedAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.Amount);
+                                                        }
+                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.CurrencyCode);
+                                                        }
+                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (benefit.IsSetCeiling()) 
+                                                    {
+                                                        Console.WriteLine("                                                Ceiling");
+                                                        Price  ceiling = benefit.Ceiling;
+                                                        if (ceiling.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", ceiling.Amount);
+                                                        }
+                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", ceiling.CurrencyCode);
+                                                        }
+                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", ceiling.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetItemApplicability()) 
+                                            {
+                                                Console.WriteLine("                                        ItemApplicability");
+                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                if (itemApplicability.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.ASIN);
+                                                }
+                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInBenefitSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInBenefitSet);
+                                                }
+                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInEligibilityRequirementSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                }
+                                            } 
+                                            if (details.IsSetMerchandisingMessage()) 
+                                            {
+                                                Console.WriteLine("                                        MerchandisingMessage");
+                                                Console.WriteLine("                                            {0}", details.MerchandisingMessage);
+                                            }
+                                        } 
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetVariationSummary()) 
+                        {
+                            Console.WriteLine("                    VariationSummary");
+                            VariationSummary  variationSummary = item.VariationSummary;
+                            if (variationSummary.IsSetLowestPrice()) 
+                            {
+                                Console.WriteLine("                        LowestPrice");
+                                Price  lowestPrice = variationSummary.LowestPrice;
+                                if (lowestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestPrice.Amount);
+                                }
+                                if (lowestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestPrice.CurrencyCode);
+                                }
+                                if (lowestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestPrice()) 
+                            {
+                                Console.WriteLine("                        HighestPrice");
+                                Price  highestPrice = variationSummary.HighestPrice;
+                                if (highestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestPrice.Amount);
+                                }
+                                if (highestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestPrice.CurrencyCode);
+                                }
+                                if (highestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetLowestSalePrice()) 
+                            {
+                                Console.WriteLine("                        LowestSalePrice");
+                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                if (lowestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.Amount);
+                                }
+                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.CurrencyCode);
+                                }
+                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestSalePrice()) 
+                            {
+                                Console.WriteLine("                        HighestSalePrice");
+                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                if (highestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestSalePrice.Amount);
+                                }
+                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestSalePrice.CurrencyCode);
+                                }
+                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetSingleMerchantId()) 
+                            {
+                                Console.WriteLine("                        SingleMerchantId");
+                                Console.WriteLine("                            {0}", variationSummary.SingleMerchantId);
+                            }
+                        } 
+                        if (item.IsSetVariations()) 
+                        {
+                            Console.WriteLine("                    Variations");
+                            Variations  variations = item.Variations;
+                            if (variations.IsSetTotalVariations()) 
+                            {
+                                Console.WriteLine("                        TotalVariations");
+                                Console.WriteLine("                            {0}", variations.TotalVariations);
+                            }
+                            if (variations.IsSetTotalVariationPages()) 
+                            {
+                                Console.WriteLine("                        TotalVariationPages");
+                                Console.WriteLine("                            {0}", variations.TotalVariationPages);
+                            }
+                            if (variations.IsSetVariationDimensions()) 
+                            {
+                                Console.WriteLine("                        VariationDimensions");
+                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                foreach (String variationDimension in variationDimensionList) 
+                                { 
+                                    Console.WriteLine("                            VariationDimension");
+                                    Console.WriteLine("                                {0}", variationDimension);
+                                }	
+                            } 
+                        } 
+                        if (item.IsSetCustomerReviews()) 
+                        {
+                            Console.WriteLine("                    CustomerReviews");
+                            CustomerReviews  customerReviews = item.CustomerReviews;
+                            if (customerReviews.IsSetAverageRating()) 
+                            {
+                                Console.WriteLine("                        AverageRating");
+                                Console.WriteLine("                            {0}", customerReviews.AverageRating);
+                            }
+                            if (customerReviews.IsSetTotalReviews()) 
+                            {
+                                Console.WriteLine("                        TotalReviews");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviews);
+                            }
+                            if (customerReviews.IsSetTotalReviewPages()) 
+                            {
+                                Console.WriteLine("                        TotalReviewPages");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviewPages);
+                            }
+                            List<Review> reviewList = customerReviews.Review;
+                            foreach (Review review in reviewList) 
+                            {
+                                Console.WriteLine("                        Review");
+                                if (review.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", review.ASIN);
+                                }
+                                if (review.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", review.Rating);
+                                }
+                                if (review.IsSetHelpfulVotes()) 
+                                {
+                                    Console.WriteLine("                            HelpfulVotes");
+                                    Console.WriteLine("                                {0}", review.HelpfulVotes);
+                                }
+                                if (review.IsSetCustomerId()) 
+                                {
+                                    Console.WriteLine("                            CustomerId");
+                                    Console.WriteLine("                                {0}", review.CustomerId);
+                                }
+                                if (review.IsSetReviewer()) 
+                                {
+                                    Console.WriteLine("                            Reviewer");
+                                    Reviewer  reviewer = review.Reviewer;
+                                    if (reviewer.IsSetCustomerId()) 
+                                    {
+                                        Console.WriteLine("                                CustomerId");
+                                        Console.WriteLine("                                    {0}", reviewer.CustomerId);
+                                    }
+                                    if (reviewer.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", reviewer.Name);
+                                    }
+                                    if (reviewer.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", reviewer.Nickname);
+                                    }
+                                    if (reviewer.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        Console.WriteLine("                                    {0}", reviewer.Location);
+                                    }
+                                } 
+                                if (review.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", review.TotalVotes);
+                                }
+                                if (review.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", review.Date);
+                                }
+                                if (review.IsSetSummary()) 
+                                {
+                                    Console.WriteLine("                            Summary");
+                                    Console.WriteLine("                                {0}", review.Summary);
+                                }
+                                if (review.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", review.Content);
+                                }
+                            }
+                        } 
+                        if (item.IsSetEditorialReviews()) 
+                        {
+                            Console.WriteLine("                    EditorialReviews");
+                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                            {
+                                Console.WriteLine("                        EditorialReview");
+                                if (editorialReview.IsSetSource()) 
+                                {
+                                    Console.WriteLine("                            Source");
+                                    Console.WriteLine("                                {0}", editorialReview.Source);
+                                }
+                                if (editorialReview.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", editorialReview.Content);
+                                }
+                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                {
+                                    Console.WriteLine("                            IsLinkSuppressed");
+                                    Console.WriteLine("                                {0}", editorialReview.IsLinkSuppressed);
+                                }
+                            }
+                        } 
+                        if (item.IsSetSimilarProducts()) 
+                        {
+                            Console.WriteLine("                    SimilarProducts");
+                            SimilarProducts  similarProducts = item.SimilarProducts;
+                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                            foreach (SimilarProduct similarProduct in similarProductList) 
+                            {
+                                Console.WriteLine("                        SimilarProduct");
+                                if (similarProduct.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", similarProduct.ASIN);
+                                }
+                                if (similarProduct.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", similarProduct.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetAccessories()) 
+                        {
+                            Console.WriteLine("                    Accessories");
+                            Accessories  accessories = item.Accessories;
+                            List<Accessory> accessoryList = accessories.Accessory;
+                            foreach (Accessory accessory in accessoryList) 
+                            {
+                                Console.WriteLine("                        Accessory");
+                                if (accessory.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", accessory.ASIN);
+                                }
+                                if (accessory.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", accessory.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTracks()) 
+                        {
+                            Console.WriteLine("                    Tracks");
+                            Tracks  tracks = item.Tracks;
+                            List<Disc> discList = tracks.Disc;
+                            foreach (Disc disc in discList) 
+                            {
+                                Console.WriteLine("                        Disc");
+                                List<Track> trackList = disc.Track;
+                                foreach (Track track in trackList) 
+                                {
+                                    Console.WriteLine("                            Track");
+                                }
+                            }
+                        } 
+                        if (item.IsSetBrowseNodes()) 
+                        {
+                            Console.WriteLine("                    BrowseNodes");
+                            BrowseNodes  browseNodes = item.BrowseNodes;
+                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                            foreach (BrowseNode browseNode in browseNodeList) 
+                            {
+                                Console.WriteLine("                        BrowseNode");
+                                if (browseNode.IsSetBrowseNodeId()) 
+                                {
+                                    Console.WriteLine("                            BrowseNodeId");
+                                    Console.WriteLine("                                {0}", browseNode.BrowseNodeId);
+                                }
+                                if (browseNode.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", browseNode.Name);
+                                }
+                                if (browseNode.IsSetIsCategoryRoot()) 
+                                {
+                                    Console.WriteLine("                            IsCategoryRoot");
+                                    Console.WriteLine("                                {0}", browseNode.IsCategoryRoot);
+                                }
+                                if (browseNode.IsSetProperties()) 
+                                {
+                                    Console.WriteLine("                            Properties");
+                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                    List<Property> propertyList = properties.Property;
+                                    foreach (Property property in propertyList) 
+                                    {
+                                        Console.WriteLine("                                Property");
+                                        if (property.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", property.Name);
+                                        }
+                                        if (property.IsSetValue()) 
+                                        {
+                                            Console.WriteLine("                                    Value");
+                                            Console.WriteLine("                                        {0}", property.Value);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetChildren()) 
+                                {
+                                    Console.WriteLine("                            Children");
+                                    BrowseNodeChildren  children = browseNode.Children;
+                                } 
+                                if (browseNode.IsSetAncestors()) 
+                                {
+                                    Console.WriteLine("                            Ancestors");
+                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                } 
+                                if (browseNode.IsSetTopSellers()) 
+                                {
+                                    Console.WriteLine("                            TopSellers");
+                                    TopSellers  topSellers = browseNode.TopSellers;
+                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                    foreach (TopSeller topSeller in topSellerList) 
+                                    {
+                                        Console.WriteLine("                                TopSeller");
+                                        if (topSeller.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", topSeller.ASIN);
+                                        }
+                                        if (topSeller.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", topSeller.Title);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetNewReleases()) 
+                                {
+                                    Console.WriteLine("                            NewReleases");
+                                    NewReleases  newReleases = browseNode.NewReleases;
+                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                    foreach (NewRelease newRelease in newReleaseList) 
+                                    {
+                                        Console.WriteLine("                                NewRelease");
+                                        if (newRelease.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", newRelease.ASIN);
+                                        }
+                                        if (newRelease.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", newRelease.Title);
+                                        }
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetSearchInside()) 
+                        {
+                            Console.WriteLine("                    SearchInside");
+                            SearchInside  searchInside = item.SearchInside;
+                            if (searchInside.IsSetTotalExcerpts()) 
+                            {
+                                Console.WriteLine("                        TotalExcerpts");
+                                Console.WriteLine("                            {0}", searchInside.TotalExcerpts);
+                            }
+                            if (searchInside.IsSetExcerpt()) 
+                            {
+                                Console.WriteLine("                        Excerpt");
+                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                if (excerpt.IsSetChecksum()) 
+                                {
+                                    Console.WriteLine("                            Checksum");
+                                    Console.WriteLine("                                {0}", excerpt.Checksum);
+                                }
+                                if (excerpt.IsSetPageType()) 
+                                {
+                                    Console.WriteLine("                            PageType");
+                                    Console.WriteLine("                                {0}", excerpt.PageType);
+                                }
+                                if (excerpt.IsSetPageNumber()) 
+                                {
+                                    Console.WriteLine("                            PageNumber");
+                                    Console.WriteLine("                                {0}", excerpt.PageNumber);
+                                }
+                                if (excerpt.IsSetSequenceNumber()) 
+                                {
+                                    Console.WriteLine("                            SequenceNumber");
+                                    Console.WriteLine("                                {0}", excerpt.SequenceNumber);
+                                }
+                                if (excerpt.IsSetText()) 
+                                {
+                                    Console.WriteLine("                            Text");
+                                    Console.WriteLine("                                {0}", excerpt.Text);
+                                }
+                            } 
+                        } 
+                        if (item.IsSetListmaniaLists()) 
+                        {
+                            Console.WriteLine("                    ListmaniaLists");
+                            ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                            List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                            foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                            {
+                                Console.WriteLine("                        ListmaniaList");
+                                if (listmaniaList.IsSetListId()) 
+                                {
+                                    Console.WriteLine("                            ListId");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListId);
+                                }
+                                if (listmaniaList.IsSetListName()) 
+                                {
+                                    Console.WriteLine("                            ListName");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListName);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = item.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                }
+                                List<TaggedListmaniaLists> taggedListmaniaListsList = tag.TaggedListmaniaLists;
+                                foreach (TaggedListmaniaLists taggedListmaniaLists in taggedListmaniaListsList) 
+                                {
+                                    Console.WriteLine("                            TaggedListmaniaLists");
+                                    if (taggedListmaniaLists.IsSetList()) 
+                                    {
+                                        Console.WriteLine("                                List");
+                                        List  list = taggedListmaniaLists.List;
+                                        if (list.IsSetListId()) 
+                                        {
+                                            Console.WriteLine("                                    ListId");
+                                            Console.WriteLine("                                        {0}", list.ListId);
+                                        }
+                                        if (list.IsSetListURL()) 
+                                        {
+                                            Console.WriteLine("                                    ListURL");
+                                            Console.WriteLine("                                        {0}", list.ListURL);
+                                        }
+                                        if (list.IsSetRegistryNumber()) 
+                                        {
+                                            Console.WriteLine("                                    RegistryNumber");
+                                            Console.WriteLine("                                        {0}", list.RegistryNumber);
+                                        }
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                                        }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemSearchSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemSearchSample.cs
new file mode 100644
index 0000000..b65924c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ItemSearchSample.cs
@@ -0,0 +1,5142 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Item Search  Samples
+    /// </summary>
+    public class ItemSearchSample
+    {
+    
+                             
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The ItemSearch operation returns items that satisfy the search
+        /// criteria, including one or more search indices
+        /// <p/>
+        /// ItemSearch returns up to ten search results at a time. When condition
+        /// equals "All," ItemSearch returns up to three offers per condition (if they exist),
+        /// for example, three new, three used, three refurbished, and three collectible items.
+        /// Or, for example, if there are no collectible or refurbished offers, ItemSearch
+        /// returns three new and three used offers.
+        /// <p/>
+        /// Because there are thousands of items in each search index, ItemSearch requires
+        /// that you specify the value for at least one parameter in addition to a search index.
+        /// The additional parameter value must reference items within the specified search index.
+        /// For example, you might specify a browse node (BrowseNode is an ItemSearch parameter),
+        /// Harry Potter Books, within the Books product category. You would not get results,
+        /// for example, if you specified the search index to be Automotive and the browse node
+        /// to be Harry Potter Books. In this case, the parameter value is not associated with
+        /// the search index value.
+        /// <p/>
+        /// The ItemPage parameter enables you to return a specified page of results. The maximum
+        /// ItemPage number that can be returned is 400. An error is returned if you try to access
+        /// higher numbered pages. If you do not include ItemPage in your request, the first page
+        /// will be returned by default. There can be up to ten items per page.
+        /// <p/>
+        /// ItemSearch is the operation that is used most often in requests. In general,
+        /// when trying to find an item for sale, you use this operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>SearchBins</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">ItemSearch request</param>
+        public static void InvokeItemSearch(AmazonECS service, params ItemSearchRequest [] request) 
+        {
+            try 
+            {
+                ItemSearchResponse response = service.ItemSearch(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        ItemSearchResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Items> itemsList = response.Items;
+                foreach (Items items in itemsList) 
+                {
+                    Console.WriteLine("            Items");
+                    if (items.IsSetCorrectedQuery()) 
+                    {
+                        Console.WriteLine("                CorrectedQuery");
+                        CorrectedQuery  correctedQuery = items.CorrectedQuery;
+                        if (correctedQuery.IsSetKeywords()) 
+                        {
+                            Console.WriteLine("                    Keywords");
+                            Console.WriteLine("                        {0}", correctedQuery.Keywords);
+                        }
+                        if (correctedQuery.IsSetMessage()) 
+                        {
+                            Console.WriteLine("                    Message");
+                            Console.WriteLine("                        {0}", correctedQuery.Message);
+                        }
+                    } 
+                    if (items.IsSetQid()) 
+                    {
+                        Console.WriteLine("                Qid");
+                        Console.WriteLine("                    {0}", items.Qid);
+                    }
+                    if (items.IsSetEngineQuery()) 
+                    {
+                        Console.WriteLine("                EngineQuery");
+                        Console.WriteLine("                    {0}", items.EngineQuery);
+                    }
+                    if (items.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", items.TotalResults);
+                    }
+                    if (items.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", items.TotalPages);
+                    }
+                    if (items.IsSetSearchResultsMap()) 
+                    {
+                        Console.WriteLine("                SearchResultsMap");
+                        SearchResultsMap  searchResultsMap = items.SearchResultsMap;
+                        List<SearchResultsMapSearchIndex> searchIndexList = searchResultsMap.SearchIndex;
+                        foreach (SearchResultsMapSearchIndex searchIndex in searchIndexList) 
+                        {
+                            Console.WriteLine("                    SearchIndex");
+                            if (searchIndex.IsSetIndexName()) 
+                            {
+                                Console.WriteLine("                        IndexName");
+                                Console.WriteLine("                            {0}", searchIndex.IndexName);
+                            }
+                            if (searchIndex.IsSetResults()) 
+                            {
+                                Console.WriteLine("                        Results");
+                                Console.WriteLine("                            {0}", searchIndex.Results);
+                            }
+                            if (searchIndex.IsSetPages()) 
+                            {
+                                Console.WriteLine("                        Pages");
+                                Console.WriteLine("                            {0}", searchIndex.Pages);
+                            }
+                            if (searchIndex.IsSetCorrectedQuery()) 
+                            {
+                                Console.WriteLine("                        CorrectedQuery");
+                                CorrectedQuery  correctedQuery = searchIndex.CorrectedQuery;
+                                if (correctedQuery.IsSetKeywords()) 
+                                {
+                                    Console.WriteLine("                            Keywords");
+                                    Console.WriteLine("                                {0}", correctedQuery.Keywords);
+                                }
+                                if (correctedQuery.IsSetMessage()) 
+                                {
+                                    Console.WriteLine("                            Message");
+                                    Console.WriteLine("                                {0}", correctedQuery.Message);
+                                }
+                            } 
+                            if (searchIndex.IsSetRelevanceRank()) 
+                            {
+                                Console.WriteLine("                        RelevanceRank");
+                                Console.WriteLine("                            {0}", searchIndex.RelevanceRank);
+                            }
+                            List<String> ASINList  =  searchIndex.ASIN;
+                            foreach (String ASIN in ASINList) 
+                            { 
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", ASIN);
+                            }	
+                        }
+                    } 
+                    List<Item> itemList = items.Item;
+                    foreach (Item item in itemList) 
+                    {
+                        Console.WriteLine("                Item");
+                        if (item.IsSetAlternateVersions()) 
+                        {
+                            Console.WriteLine("                    AlternateVersions");
+                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                            {
+                                Console.WriteLine("                        AlternateVersion");
+                                if (alternateVersion.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", alternateVersion.ASIN);
+                                }
+                                if (alternateVersion.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", alternateVersion.Title);
+                                }
+                                if (alternateVersion.IsSetBinding()) 
+                                {
+                                    Console.WriteLine("                            Binding");
+                                    Console.WriteLine("                                {0}", alternateVersion.Binding);
+                                }
+                            }
+                        } 
+                        if (item.IsSetASIN()) 
+                        {
+                            Console.WriteLine("                    ASIN");
+                            Console.WriteLine("                        {0}", item.ASIN);
+                        }
+                        if (item.IsSetParentASIN()) 
+                        {
+                            Console.WriteLine("                    ParentASIN");
+                            Console.WriteLine("                        {0}", item.ParentASIN);
+                        }
+                        if (item.IsSetDetailPageURL()) 
+                        {
+                            Console.WriteLine("                    DetailPageURL");
+                            Console.WriteLine("                        {0}", item.DetailPageURL);
+                        }
+                        if (item.IsSetSalesRank()) 
+                        {
+                            Console.WriteLine("                    SalesRank");
+                            Console.WriteLine("                        {0}", item.SalesRank);
+                        }
+                        if (item.IsSetSmallImage()) 
+                        {
+                            Console.WriteLine("                    SmallImage");
+                            Image  smallImage = item.SmallImage;
+                            if (smallImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", smallImage.URL);
+                            }
+                            if (smallImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = smallImage.Height;
+                            } 
+                            if (smallImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = smallImage.Width;
+                            } 
+                            if (smallImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", smallImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetMediumImage()) 
+                        {
+                            Console.WriteLine("                    MediumImage");
+                            Image  mediumImage = item.MediumImage;
+                            if (mediumImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", mediumImage.URL);
+                            }
+                            if (mediumImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = mediumImage.Height;
+                            } 
+                            if (mediumImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = mediumImage.Width;
+                            } 
+                            if (mediumImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", mediumImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetLargeImage()) 
+                        {
+                            Console.WriteLine("                    LargeImage");
+                            Image  largeImage = item.LargeImage;
+                            if (largeImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", largeImage.URL);
+                            }
+                            if (largeImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = largeImage.Height;
+                            } 
+                            if (largeImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = largeImage.Width;
+                            } 
+                            if (largeImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", largeImage.IsVerified);
+                            }
+                        } 
+                        List<ImageSets> imageSetsList = item.ImageSets;
+                        foreach (ImageSets imageSets in imageSetsList) 
+                        {
+                            Console.WriteLine("                    ImageSets");
+                            if (imageSets.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", imageSets.MerchantId);
+                            }
+                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                            foreach (ImageSet imageSet in imageSetList) 
+                            {
+                                Console.WriteLine("                        ImageSet");
+                                if (imageSet.IsSetSwatchImage()) 
+                                {
+                                    Console.WriteLine("                            SwatchImage");
+                                    Image  swatchImage = imageSet.SwatchImage;
+                                    if (swatchImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", swatchImage.URL);
+                                    }
+                                    if (swatchImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = swatchImage.Height;
+                                    } 
+                                    if (swatchImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = swatchImage.Width;
+                                    } 
+                                    if (swatchImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", swatchImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetSmallImage()) 
+                                {
+                                    Console.WriteLine("                            SmallImage");
+                                    Image  smallImage = imageSet.SmallImage;
+                                    if (smallImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", smallImage.URL);
+                                    }
+                                    if (smallImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = smallImage.Height;
+                                    } 
+                                    if (smallImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = smallImage.Width;
+                                    } 
+                                    if (smallImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", smallImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetThumbnailImage()) 
+                                {
+                                    Console.WriteLine("                            ThumbnailImage");
+                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                    if (thumbnailImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.URL);
+                                    }
+                                    if (thumbnailImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                    } 
+                                    if (thumbnailImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                    } 
+                                    if (thumbnailImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetTinyImage()) 
+                                {
+                                    Console.WriteLine("                            TinyImage");
+                                    Image  tinyImage = imageSet.TinyImage;
+                                    if (tinyImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", tinyImage.URL);
+                                    }
+                                    if (tinyImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = tinyImage.Height;
+                                    } 
+                                    if (tinyImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = tinyImage.Width;
+                                    } 
+                                    if (tinyImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", tinyImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetMediumImage()) 
+                                {
+                                    Console.WriteLine("                            MediumImage");
+                                    Image  mediumImage = imageSet.MediumImage;
+                                    if (mediumImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", mediumImage.URL);
+                                    }
+                                    if (mediumImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = mediumImage.Height;
+                                    } 
+                                    if (mediumImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = mediumImage.Width;
+                                    } 
+                                    if (mediumImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", mediumImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetLargeImage()) 
+                                {
+                                    Console.WriteLine("                            LargeImage");
+                                    Image  largeImage = imageSet.LargeImage;
+                                    if (largeImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", largeImage.URL);
+                                    }
+                                    if (largeImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = largeImage.Height;
+                                    } 
+                                    if (largeImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = largeImage.Width;
+                                    } 
+                                    if (largeImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", largeImage.IsVerified);
+                                    }
+                                } 
+                            }
+                        }
+                        if (item.IsSetItemAttributes()) 
+                        {
+                            Console.WriteLine("                    ItemAttributes");
+                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                            List<String> actorList  =  itemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (itemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = itemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            List<String> ageList  =  itemAttributes.Age;
+                            foreach (String age in ageList) 
+                            { 
+                                Console.WriteLine("                        Age");
+                                Console.WriteLine("                            {0}", age);
+                            }	
+                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                            {
+                                Console.WriteLine("                        AnalogVideoFormat");
+                                Console.WriteLine("                            {0}", itemAttributes.AnalogVideoFormat);
+                            }
+                            if (itemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  itemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (itemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", itemAttributes.AspectRatio);
+                            }
+                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyInstructions);
+                            }
+                            if (itemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyRequired);
+                            }
+                            if (itemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  itemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (itemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", itemAttributes.BackFinding);
+                            }
+                            if (itemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BandMaterialType);
+                            }
+                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesIncluded);
+                            }
+                            if (itemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesRequired);
+                            }
+                            if (itemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                            } 
+                            if (itemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryDescription);
+                            }
+                            if (itemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryType);
+                            }
+                            if (itemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BezelMaterialType);
+                            }
+                            if (itemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", itemAttributes.Binding);
+                            }
+                            if (itemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", itemAttributes.Brand);
+                            }
+                            if (itemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", itemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (itemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                            } 
+                            if (itemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseMaterialType);
+                            }
+                            if (itemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                            } 
+                            if (itemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseType);
+                            }
+                            if (itemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.CatalogNumber);
+                            }
+                            List<String> categoryList  =  itemAttributes.Category;
+                            foreach (String category in categoryList) 
+                            { 
+                                Console.WriteLine("                        Category");
+                                Console.WriteLine("                            {0}", category);
+                            }	
+                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                            foreach (String categoryBin in categoryBinList) 
+                            { 
+                                Console.WriteLine("                        CategoryBin");
+                                Console.WriteLine("                            {0}", categoryBin);
+                            }	
+                            if (itemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.CDRWDescription);
+                            }
+                            if (itemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", itemAttributes.ChainType);
+                            }
+                            List<String> characterList  =  itemAttributes.Character;
+                            foreach (String character in characterList) 
+                            { 
+                                Console.WriteLine("                        Character");
+                                Console.WriteLine("                            {0}", character);
+                            }	
+                            if (itemAttributes.IsSetCEROAgeRating()) 
+                            {
+                                Console.WriteLine("                        CEROAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.CEROAgeRating);
+                            }
+                            if (itemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClaspType);
+                            }
+                            if (itemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.ClothingSize);
+                            }
+                            if (itemAttributes.IsSetClubType()) 
+                            {
+                                Console.WriteLine("                        ClubType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClubType);
+                            }
+                            if (itemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", itemAttributes.Color);
+                            }
+                            if (itemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", itemAttributes.Compatibility);
+                            }
+                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                            foreach (String compatibleDevices in compatibleDevicesList) 
+                            { 
+                                Console.WriteLine("                        CompatibleDevices");
+                                Console.WriteLine("                            {0}", compatibleDevices);
+                            }	
+                            if (itemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerHardwareType);
+                            }
+                            if (itemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerPlatform);
+                            }
+                            if (itemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", itemAttributes.Connectivity);
+                            }
+                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (itemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", itemAttributes.Country);
+                            }
+                            if (itemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUManufacturer);
+                            }
+                            if (itemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                            } 
+                            if (itemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = itemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (itemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", itemAttributes.Cuisine);
+                            }
+                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                            { 
+                                Console.WriteLine("                        DataLinkProtocol");
+                                Console.WriteLine("                            {0}", dataLinkProtocol);
+                            }	
+                            if (itemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", itemAttributes.DeliveryOption);
+                            }
+                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                            } 
+                            if (itemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", itemAttributes.Department);
+                            }
+                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.DeweyDecimalNumber);
+                            }
+                            if (itemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", itemAttributes.DialColor);
+                            }
+                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.DialWindowMaterialType);
+                            }
+                            if (itemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  itemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                            {
+                                Console.WriteLine("                        DisplayColorSupport");
+                                Console.WriteLine("                            {0}", itemAttributes.DisplayColorSupport);
+                            }
+                            if (itemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                            } 
+                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (itemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDLayers);
+                            }
+                            if (itemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDRWDescription);
+                            }
+                            if (itemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDSides);
+                            }
+                            if (itemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", itemAttributes.DPCI);
+                            }
+                            if (itemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", itemAttributes.EAN);
+                            }
+                            if (itemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", itemAttributes.Edition);
+                            }
+                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                            foreach (String educationalFocus in educationalFocusList) 
+                            { 
+                                Console.WriteLine("                        EducationalFocus");
+                                Console.WriteLine("                            {0}", educationalFocus);
+                            }	
+                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                            foreach (String ethnicity in ethnicityList) 
+                            { 
+                                Console.WriteLine("                        Ethnicity");
+                                Console.WriteLine("                            {0}", ethnicity);
+                            }	
+                            if (itemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.ESRBAgeRating);
+                            }
+                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (itemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", itemAttributes.FabricType);
+                            }
+                            if (itemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  itemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (itemAttributes.IsSetFilmColorType()) 
+                            {
+                                Console.WriteLine("                        FilmColorType");
+                                Console.WriteLine("                            {0}", itemAttributes.FilmColorType);
+                            }
+                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (itemAttributes.IsSetFlavorName()) 
+                            {
+                                Console.WriteLine("                        FlavorName");
+                                Console.WriteLine("                            {0}", itemAttributes.FlavorName);
+                            }
+                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  itemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                            foreach (String formFactor in formFactorList) 
+                            { 
+                                Console.WriteLine("                        FormFactor");
+                                Console.WriteLine("                            {0}", formFactor);
+                            }	
+                            if (itemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", itemAttributes.GemType);
+                            }
+                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        GemTypeSetElement");
+                                Console.WriteLine("                            {0}", gemTypeSetElement);
+                            }	
+                            List<String> genderList  =  itemAttributes.Gender;
+                            foreach (String gender in genderList) 
+                            { 
+                                Console.WriteLine("                        Gender");
+                                Console.WriteLine("                            {0}", gender);
+                            }	
+                            if (itemAttributes.IsSetGenre()) 
+                            {
+                                Console.WriteLine("                        Genre");
+                                Console.WriteLine("                            {0}", itemAttributes.Genre);
+                            }
+                            if (itemAttributes.IsSetGLProductGroup()) 
+                            {
+                                Console.WriteLine("                        GLProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.GLProductGroup);
+                            }
+                            if (itemAttributes.IsSetGolfClubFlex()) 
+                            {
+                                Console.WriteLine("                        GolfClubFlex");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubFlex);
+                            }
+                            if (itemAttributes.IsSetGolfClubLoft()) 
+                            {
+                                Console.WriteLine("                        GolfClubLoft");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubLoft);
+                            }
+                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsCardInterface);
+                            }
+                            if (itemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsDescription);
+                            }
+                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                            } 
+                            if (itemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarAttribute);
+                            }
+                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarBridgeSystem);
+                            }
+                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickThickness);
+                            }
+                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (itemAttributes.IsSetHandOrientation()) 
+                            {
+                                Console.WriteLine("                        HandOrientation");
+                                Console.WriteLine("                            {0}", itemAttributes.HandOrientation);
+                            }
+                            if (itemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskCount);
+                            }
+                            if (itemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                            } 
+                            if (itemAttributes.IsSetHardDiskInterface()) 
+                            {
+                                Console.WriteLine("                        HardDiskInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskInterface);
+                            }
+                            if (itemAttributes.IsSetHardwarePlatform()) 
+                            {
+                                Console.WriteLine("                        HardwarePlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.HardwarePlatform);
+                            }
+                            if (itemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", itemAttributes.HasAutoFocus);
+                            }
+                            if (itemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", itemAttributes.HasBurstMode);
+                            }
+                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", itemAttributes.HasInCameraEditing);
+                            }
+                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", itemAttributes.HasRedEyeReduction);
+                            }
+                            if (itemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", itemAttributes.HasSelfTimer);
+                            }
+                            if (itemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", itemAttributes.HasTripodMount);
+                            }
+                            if (itemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", itemAttributes.HasVideoOut);
+                            }
+                            if (itemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", itemAttributes.HasViewfinder);
+                            }
+                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.HazardousMaterialType);
+                            }
+                            if (itemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", itemAttributes.HoursOfOperation);
+                            }
+                            if (itemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludedSoftware);
+                            }
+                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludesMp3Player);
+                            }
+                            if (itemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", itemAttributes.Ingredients);
+                            }
+                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                            { 
+                                Console.WriteLine("                        IngredientsSetElement");
+                                Console.WriteLine("                            {0}", ingredientsSetElement);
+                            }	
+                            if (itemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", itemAttributes.InstrumentKey);
+                            }
+                            List<String> interestList  =  itemAttributes.Interest;
+                            foreach (String interest in interestList) 
+                            { 
+                                Console.WriteLine("                        Interest");
+                                Console.WriteLine("                            {0}", interest);
+                            }	
+                            if (itemAttributes.IsSetIsAdultProduct()) 
+                            {
+                                Console.WriteLine("                        IsAdultProduct");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAdultProduct);
+                            }
+                            if (itemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAutographed);
+                            }
+                            if (itemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", itemAttributes.ISBN);
+                            }
+                            if (itemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", itemAttributes.IsFragile);
+                            }
+                            if (itemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", itemAttributes.IsLabCreated);
+                            }
+                            if (itemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", itemAttributes.IsMemorabilia);
+                            }
+                            if (itemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                            } 
+                            if (itemAttributes.IsSetIsPreannounce()) 
+                            {
+                                Console.WriteLine("                        IsPreannounce");
+                                Console.WriteLine("                            {0}", itemAttributes.IsPreannounce);
+                            }
+                            if (itemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", itemAttributes.IssuesPerYear);
+                            }
+                            if (itemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.KeyboardDescription);
+                            }
+                            if (itemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", itemAttributes.Label);
+                            }
+                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                            foreach (String languageName in languageNameList) 
+                            { 
+                                Console.WriteLine("                        LanguageName");
+                                Console.WriteLine("                            {0}", languageName);
+                            }	
+                            if (itemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = itemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", itemAttributes.LegalDisclaimer);
+                            }
+                            if (itemAttributes.IsSetLensType()) 
+                            {
+                                Console.WriteLine("                        LensType");
+                                Console.WriteLine("                            {0}", itemAttributes.LensType);
+                            }
+                            if (itemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", itemAttributes.LineVoltage);
+                            }
+                            if (itemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = itemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", itemAttributes.MacroFocusRange);
+                            }
+                            if (itemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", itemAttributes.MagazineType);
+                            }
+                            if (itemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", itemAttributes.MalletHardness);
+                            }
+                            if (itemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.Manufacturer);
+                            }
+                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.MaterialType);
+                            }
+                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        MaterialTypeSetElement");
+                                Console.WriteLine("                            {0}", materialTypeSetElement);
+                            }	
+                            if (itemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                            } 
+                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumColorDepth);
+                            }
+                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (itemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (itemAttributes.IsSetMediaType()) 
+                            {
+                                Console.WriteLine("                        MediaType");
+                                Console.WriteLine("                            {0}", itemAttributes.MediaType);
+                            }
+                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", itemAttributes.MemorySlotsAvailable);
+                            }
+                            if (itemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalStamp);
+                            }
+                            if (itemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalType);
+                            }
+                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MiniMovieDescription);
+                            }
+                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", itemAttributes.Model);
+                            }
+                            if (itemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", itemAttributes.ModelYear);
+                            }
+                            if (itemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ModemDescription);
+                            }
+                            if (itemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                            } 
+                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (itemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MouseDescription);
+                            }
+                            if (itemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", itemAttributes.MPN);
+                            }
+                            if (itemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", itemAttributes.MusicalStyle);
+                            }
+                            if (itemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", itemAttributes.NativeResolution);
+                            }
+                            if (itemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", itemAttributes.Neighborhood);
+                            }
+                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfDiscs);
+                            }
+                            if (itemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfIssues);
+                            }
+                            if (itemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfItems);
+                            }
+                            if (itemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfKeys);
+                            }
+                            if (itemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPages);
+                            }
+                            if (itemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPearls);
+                            }
+                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (itemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStones);
+                            }
+                            if (itemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStrings);
+                            }
+                            if (itemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfTracks);
+                            }
+                            if (itemAttributes.IsSetOperatingSystem()) 
+                            {
+                                Console.WriteLine("                        OperatingSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.OperatingSystem);
+                            }
+                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                            {
+                                Console.WriteLine("                        OpticalSensorResolution");
+                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                            } 
+                            if (itemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                            } 
+                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.OriginalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", itemAttributes.OutputWattage);
+                            }
+                            if (itemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetPackageQuantity()) 
+                            {
+                                Console.WriteLine("                        PackageQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.PackageQuantity);
+                            }
+                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                            foreach (String pantLength in pantLengthList) 
+                            { 
+                                Console.WriteLine("                        PantLength");
+                                Console.WriteLine("                            {0}", pantLength);
+                            }	
+                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                            foreach (String pantSize in pantSizeList) 
+                            { 
+                                Console.WriteLine("                        PantSize");
+                                Console.WriteLine("                            {0}", pantSize);
+                            }	
+                            if (itemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlLustre);
+                            }
+                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlMinimumColor);
+                            }
+                            if (itemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlShape);
+                            }
+                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlStringingMethod);
+                            }
+                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (itemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlType);
+                            }
+                            if (itemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlUniformity);
+                            }
+                            if (itemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  itemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (itemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.PriceRating);
+                            }
+                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                            foreach (String primaryColor in primaryColorList) 
+                            { 
+                                Console.WriteLine("                        PrimaryColor");
+                                Console.WriteLine("                            {0}", primaryColor);
+                            }	
+                            if (itemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", itemAttributes.ProcessorCount);
+                            }
+                            if (itemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductGroup);
+                            }
+                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                            {
+                                Console.WriteLine("                        ProductSiteLaunchDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductSiteLaunchDate);
+                            }
+                            if (itemAttributes.IsSetProductTypeName()) 
+                            {
+                                Console.WriteLine("                        ProductTypeName");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeName);
+                            }
+                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                            {
+                                Console.WriteLine("                        ProductTypeSubcategory");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeSubcategory);
+                            }
+                            if (itemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", itemAttributes.PromotionalTag);
+                            }
+                            if (itemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", itemAttributes.PublicationDate);
+                            }
+                            if (itemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", itemAttributes.Publisher);
+                            }
+                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", itemAttributes.POBoxShippingExcluded);
+                            }
+                            if (itemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.ReadingLevel);
+                            }
+                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", itemAttributes.RecorderTrackCount);
+                            }
+                            if (itemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionCode);
+                            }
+                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionOfOrigin);
+                            }
+                            if (itemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", itemAttributes.ReturnPolicy);
+                            }
+                            if (itemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ReleaseDate);
+                            }
+                            if (itemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableMemory);
+                            }
+                            if (itemAttributes.IsSetRemovableStorage()) 
+                            {
+                                Console.WriteLine("                        RemovableStorage");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableStorage);
+                            }
+                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                            {
+                                Console.WriteLine("                        RequiredVoltageRange");
+                                Console.WriteLine("                            {0}", itemAttributes.RequiredVoltageRange);
+                            }
+                            if (itemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ResolutionModes);
+                            }
+                            if (itemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.RingSize);
+                            }
+                            if (itemAttributes.IsSetRunningTime()) 
+                            {
+                                Console.WriteLine("                        RunningTime");
+                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                            } 
+                            if (itemAttributes.IsSetScentName()) 
+                            {
+                                Console.WriteLine("                        ScentName");
+                                Console.WriteLine("                            {0}", itemAttributes.ScentName);
+                            }
+                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                            } 
+                            if (itemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", itemAttributes.SettingType);
+                            }
+                            if (itemAttributes.IsSetShaftMaterialType()) 
+                            {
+                                Console.WriteLine("                        ShaftMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.ShaftMaterialType);
+                            }
+                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                            foreach (String shoeSize in shoeSizeList) 
+                            { 
+                                Console.WriteLine("                        ShoeSize");
+                                Console.WriteLine("                            {0}", shoeSize);
+                            }	
+                            if (itemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", itemAttributes.Size);
+                            }
+                            if (itemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", itemAttributes.SizePerPearl);
+                            }
+                            if (itemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.SkillLevel);
+                            }
+                            if (itemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", itemAttributes.SKU);
+                            }
+                            if (itemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", itemAttributes.SoldInStores);
+                            }
+                            if (itemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SoundCardDescription);
+                            }
+                            if (itemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerCount);
+                            }
+                            if (itemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (itemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneClarity);
+                            }
+                            if (itemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneColor);
+                            }
+                            if (itemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneCut);
+                            }
+                            if (itemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneShape);
+                            }
+                            if (itemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                            } 
+                            if (itemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", itemAttributes.Studio);
+                            }
+                            if (itemAttributes.IsSetStyle()) 
+                            {
+                                Console.WriteLine("                        Style");
+                                Console.WriteLine("                            {0}", itemAttributes.Style);
+                            }
+                            if (itemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                            {
+                                Console.WriteLine("                        SupportedMediaSize");
+                                Console.WriteLine("                            {0}", itemAttributes.SupportedMediaSize);
+                            }
+                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                            } 
+                            if (itemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", itemAttributes.SystemMemoryType);
+                            }
+                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                            foreach (String targetBrand in targetBrandList) 
+                            { 
+                                Console.WriteLine("                        TargetBrand");
+                                Console.WriteLine("                            {0}", targetBrand);
+                            }	
+                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", itemAttributes.TellingPageIndicator);
+                            }
+                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.TheatricalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", itemAttributes.Title);
+                            }
+                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalExternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalFirewirePorts);
+                            }
+                            if (itemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalInternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalParallelPorts);
+                            }
+                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCCardSlots);
+                            }
+                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCISlotsFree);
+                            }
+                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSerialPorts);
+                            }
+                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSB2Ports);
+                            }
+                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSBPorts);
+                            }
+                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalVGAOutPorts);
+                            }
+                            if (itemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", itemAttributes.UPC);
+                            }
+                            if (itemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDenomination);
+                            }
+                            if (itemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDescription);
+                            }
+                            if (itemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", itemAttributes.Warranty);
+                            }
+                            if (itemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", itemAttributes.WatchMovementType);
+                            }
+                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                            } 
+                            if (itemAttributes.IsSetWEEETaxValue()) 
+                            {
+                                Console.WriteLine("                        WEEETaxValue");
+                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                if (WEEETaxValue.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.Amount);
+                                }
+                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.CurrencyCode);
+                                }
+                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetMerchantItemAttributes()) 
+                        {
+                            Console.WriteLine("                    MerchantItemAttributes");
+                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                            List<String> actorList  =  merchantItemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (merchantItemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = merchantItemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  merchantItemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AspectRatio);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyInstructions);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyRequired);
+                            }
+                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  merchantItemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (merchantItemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BackFinding);
+                            }
+                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BandMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesIncluded);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesRequired);
+                            }
+                            if (merchantItemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                            } 
+                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryDescription);
+                            }
+                            if (merchantItemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryType);
+                            }
+                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BezelMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Binding);
+                            }
+                            if (merchantItemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Brand);
+                            }
+                            if (merchantItemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseType);
+                            }
+                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CatalogNumber);
+                            }
+                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ChainType);
+                            }
+                            if (merchantItemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClaspType);
+                            }
+                            if (merchantItemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClothingSize);
+                            }
+                            if (merchantItemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Color);
+                            }
+                            if (merchantItemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Compatibility);
+                            }
+                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerHardwareType);
+                            }
+                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerPlatform);
+                            }
+                            if (merchantItemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Connectivity);
+                            }
+                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Country);
+                            }
+                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                            {
+                                Console.WriteLine("                        CountryOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CountryOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUManufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (merchantItemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Cuisine);
+                            }
+                            if (merchantItemAttributes.IsSetCustomizable()) 
+                            {
+                                Console.WriteLine("                        Customizable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Customizable);
+                            }
+                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                            } 
+                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeliveryOption);
+                            }
+                            if (merchantItemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Department);
+                            }
+                            if (merchantItemAttributes.IsSetDescription()) 
+                            {
+                                Console.WriteLine("                        Description");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Description);
+                            }
+                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                            }
+                            if (merchantItemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialColor);
+                            }
+                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  merchantItemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                            } 
+                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDLayers);
+                            }
+                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDSides);
+                            }
+                            if (merchantItemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DPCI);
+                            }
+                            if (merchantItemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.EAN);
+                            }
+                            if (merchantItemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Edition);
+                            }
+                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ESRBAgeRating);
+                            }
+                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (merchantItemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FabricType);
+                            }
+                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  merchantItemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  merchantItemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                            {
+                                Console.WriteLine("                        FixedShippingCharge");
+                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                if (fixedShippingCharge.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.Amount);
+                                }
+                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.CurrencyCode);
+                                }
+                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GemType);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsDescription);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarAttribute);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickThickness);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HardDiskCount);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                            } 
+                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasAutoFocus);
+                            }
+                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasBurstMode);
+                            }
+                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasInCameraEditing);
+                            }
+                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                            }
+                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasSelfTimer);
+                            }
+                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasTripodMount);
+                            }
+                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasVideoOut);
+                            }
+                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasViewfinder);
+                            }
+                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HazardousMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HoursOfOperation);
+                            }
+                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludedSoftware);
+                            }
+                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludesMp3Player);
+                            }
+                            if (merchantItemAttributes.IsSetIndications()) 
+                            {
+                                Console.WriteLine("                        Indications");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Indications);
+                            }
+                            if (merchantItemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Ingredients);
+                            }
+                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.InstrumentKey);
+                            }
+                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsAutographed);
+                            }
+                            if (merchantItemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ISBN);
+                            }
+                            if (merchantItemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsFragile);
+                            }
+                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsLabCreated);
+                            }
+                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsMemorabilia);
+                            }
+                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                            } 
+                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IssuesPerYear);
+                            }
+                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.KeyboardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Label);
+                            }
+                            if (merchantItemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = merchantItemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LegalDisclaimer);
+                            }
+                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LineVoltage);
+                            }
+                            if (merchantItemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MacroFocusRange);
+                            }
+                            if (merchantItemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MagazineType);
+                            }
+                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MalletHardness);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Manufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumColorDepth);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                            }
+                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalStamp);
+                            }
+                            if (merchantItemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalType);
+                            }
+                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MiniMovieDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Model);
+                            }
+                            if (merchantItemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModelYear);
+                            }
+                            if (merchantItemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModemDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MouseDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MPN);
+                            }
+                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MusicalStyle);
+                            }
+                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NativeResolution);
+                            }
+                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Neighborhood);
+                            }
+                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfDiscs);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfIssues);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfItems);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfKeys);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPages);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPearls);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStones);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStrings);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfTracks);
+                            }
+                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                            } 
+                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OutputWattage);
+                            }
+                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlLustre);
+                            }
+                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlMinimumColor);
+                            }
+                            if (merchantItemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlShape);
+                            }
+                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlStringingMethod);
+                            }
+                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (merchantItemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlType);
+                            }
+                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlUniformity);
+                            }
+                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  merchantItemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (merchantItemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PriceRating);
+                            }
+                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProcessorCount);
+                            }
+                            if (merchantItemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProductGroup);
+                            }
+                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PromotionalTag);
+                            }
+                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                            }
+                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PublicationDate);
+                            }
+                            if (merchantItemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Publisher);
+                            }
+                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                            foreach (String purchasingChannel in purchasingChannelList) 
+                            { 
+                                Console.WriteLine("                        PurchasingChannel");
+                                Console.WriteLine("                            {0}", purchasingChannel);
+                            }	
+                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReadingLevel);
+                            }
+                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RecorderTrackCount);
+                            }
+                            if (merchantItemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionCode);
+                            }
+                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReleaseDate);
+                            }
+                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RemovableMemory);
+                            }
+                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ResolutionModes);
+                            }
+                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReturnPolicy);
+                            }
+                            if (merchantItemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RingSize);
+                            }
+                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                            {
+                                Console.WriteLine("                        SafetyWarning");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SafetyWarning);
+                            }
+                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                            {
+                                Console.WriteLine("                        SalesRestriction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SalesRestriction);
+                            }
+                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                            } 
+                            if (merchantItemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SettingType);
+                            }
+                            if (merchantItemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Size);
+                            }
+                            if (merchantItemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SKU);
+                            }
+                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoldInStores);
+                            }
+                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SizePerPearl);
+                            }
+                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SkillLevel);
+                            }
+                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoundCardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerCount);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneClarity);
+                            }
+                            if (merchantItemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneColor);
+                            }
+                            if (merchantItemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneCut);
+                            }
+                            if (merchantItemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneShape);
+                            }
+                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Studio);
+                            }
+                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SystemMemoryType);
+                            }
+                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TellingPageIndicator);
+                            }
+                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Title);
+                            }
+                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalParallelPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSerialPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSBPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.UPC);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDenomination);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDescription);
+                            }
+                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                            {
+                                Console.WriteLine("                        VendorRebate");
+                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                if (vendorRebate.IsSetType()) 
+                                {
+                                    Console.WriteLine("                            Type");
+                                    Console.WriteLine("                                {0}", vendorRebate.Type);
+                                }
+                                if (vendorRebate.IsSetStartDate()) 
+                                {
+                                    Console.WriteLine("                            StartDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.StartDate);
+                                }
+                                if (vendorRebate.IsSetEndDate()) 
+                                {
+                                    Console.WriteLine("                            EndDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.EndDate);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Warranty);
+                            }
+                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WatchMovementType);
+                            }
+                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                            {
+                                Console.WriteLine("                        WebsiteBuyability");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WebsiteBuyability);
+                            }
+                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                            } 
+                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetCollections()) 
+                        {
+                            Console.WriteLine("                    Collections");
+                            Collections  collections = item.Collections;
+                            List<CollectionsCollection> collectionList = collections.Collection;
+                            foreach (CollectionsCollection collection in collectionList) 
+                            {
+                                Console.WriteLine("                        Collection");
+                                if (collection.IsSetCollectionSummary()) 
+                                {
+                                    Console.WriteLine("                            CollectionSummary");
+                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestListPrice");
+                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                        if (lowestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.Amount);
+                                        }
+                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.CurrencyCode);
+                                        }
+                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestListPrice");
+                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                        if (highestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestListPrice.Amount);
+                                        }
+                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestListPrice.CurrencyCode);
+                                        }
+                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestSalePrice");
+                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                        if (lowestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.Amount);
+                                        }
+                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.CurrencyCode);
+                                        }
+                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestSalePrice");
+                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                        if (highestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.Amount);
+                                        }
+                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.CurrencyCode);
+                                        }
+                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (collection.IsSetCollectionParent()) 
+                                {
+                                    Console.WriteLine("                            CollectionParent");
+                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                    if (collectionParent.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionParent.ASIN);
+                                    }
+                                    if (collectionParent.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionParent.Title);
+                                    }
+                                } 
+                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                {
+                                    Console.WriteLine("                            CollectionItem");
+                                    if (collectionItem.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionItem.ASIN);
+                                    }
+                                    if (collectionItem.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionItem.Title);
+                                    }
+                                }
+                            }
+                        } 
+                        if (item.IsSetSubjects()) 
+                        {
+                            Console.WriteLine("                    Subjects");
+                            Subjects  subjects = item.Subjects;
+                            List<String> subjectList  =  subjects.Subject;
+                            foreach (String subject in subjectList) 
+                            { 
+                                Console.WriteLine("                        Subject");
+                                Console.WriteLine("                            {0}", subject);
+                            }	
+                        } 
+                        if (item.IsSetOfferSummary()) 
+                        {
+                            Console.WriteLine("                    OfferSummary");
+                            OfferSummary  offerSummary = item.OfferSummary;
+                            if (offerSummary.IsSetLowestNewPrice()) 
+                            {
+                                Console.WriteLine("                        LowestNewPrice");
+                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                if (lowestNewPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.Amount);
+                                }
+                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.CurrencyCode);
+                                }
+                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestUsedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestUsedPrice");
+                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                if (lowestUsedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.Amount);
+                                }
+                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.CurrencyCode);
+                                }
+                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                            {
+                                Console.WriteLine("                        LowestCollectiblePrice");
+                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.Amount);
+                                }
+                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                }
+                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestRefurbishedPrice");
+                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.Amount);
+                                }
+                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                }
+                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetTotalNew()) 
+                            {
+                                Console.WriteLine("                        TotalNew");
+                                Console.WriteLine("                            {0}", offerSummary.TotalNew);
+                            }
+                            if (offerSummary.IsSetTotalUsed()) 
+                            {
+                                Console.WriteLine("                        TotalUsed");
+                                Console.WriteLine("                            {0}", offerSummary.TotalUsed);
+                            }
+                            if (offerSummary.IsSetTotalCollectible()) 
+                            {
+                                Console.WriteLine("                        TotalCollectible");
+                                Console.WriteLine("                            {0}", offerSummary.TotalCollectible);
+                            }
+                            if (offerSummary.IsSetTotalRefurbished()) 
+                            {
+                                Console.WriteLine("                        TotalRefurbished");
+                                Console.WriteLine("                            {0}", offerSummary.TotalRefurbished);
+                            }
+                        } 
+                        if (item.IsSetOffers()) 
+                        {
+                            Console.WriteLine("                    Offers");
+                            Offers  offers = item.Offers;
+                            if (offers.IsSetTotalOffers()) 
+                            {
+                                Console.WriteLine("                        TotalOffers");
+                                Console.WriteLine("                            {0}", offers.TotalOffers);
+                            }
+                            if (offers.IsSetTotalOfferPages()) 
+                            {
+                                Console.WriteLine("                        TotalOfferPages");
+                                Console.WriteLine("                            {0}", offers.TotalOfferPages);
+                            }
+                            List<Offer> offerList = offers.Offer;
+                            foreach (Offer offer in offerList) 
+                            {
+                                Console.WriteLine("                        Offer");
+                                if (offer.IsSetMerchant()) 
+                                {
+                                    Console.WriteLine("                            Merchant");
+                                    Merchant  merchant = offer.Merchant;
+                                    if (merchant.IsSetMerchantId()) 
+                                    {
+                                        Console.WriteLine("                                MerchantId");
+                                        Console.WriteLine("                                    {0}", merchant.MerchantId);
+                                    }
+                                    if (merchant.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", merchant.Name);
+                                    }
+                                    if (merchant.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", merchant.GlancePage);
+                                    }
+                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", merchant.AverageFeedbackRating);
+                                    }
+                                    if (merchant.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedback);
+                                    }
+                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedbackPages);
+                                    }
+                                } 
+                                if (offer.IsSetSeller()) 
+                                {
+                                    Console.WriteLine("                            Seller");
+                                    Seller  seller = offer.Seller;
+                                    if (seller.IsSetSellerId()) 
+                                    {
+                                        Console.WriteLine("                                SellerId");
+                                        Console.WriteLine("                                    {0}", seller.SellerId);
+                                    }
+                                    if (seller.IsSetSellerName()) 
+                                    {
+                                        Console.WriteLine("                                SellerName");
+                                        Console.WriteLine("                                    {0}", seller.SellerName);
+                                    }
+                                    if (seller.IsSetSellerLegalName()) 
+                                    {
+                                        Console.WriteLine("                                SellerLegalName");
+                                        Console.WriteLine("                                    {0}", seller.SellerLegalName);
+                                    }
+                                    if (seller.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", seller.Nickname);
+                                    }
+                                    if (seller.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", seller.GlancePage);
+                                    }
+                                    if (seller.IsSetAbout()) 
+                                    {
+                                        Console.WriteLine("                                About");
+                                        Console.WriteLine("                                    {0}", seller.About);
+                                    }
+                                    if (seller.IsSetMoreAbout()) 
+                                    {
+                                        Console.WriteLine("                                MoreAbout");
+                                        Console.WriteLine("                                    {0}", seller.MoreAbout);
+                                    }
+                                    if (seller.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        SellerLocation  location = seller.Location;
+                                        if (location.IsSetUserDefinedLocation()) 
+                                        {
+                                            Console.WriteLine("                                    UserDefinedLocation");
+                                            Console.WriteLine("                                        {0}", location.UserDefinedLocation);
+                                        }
+                                        if (location.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", location.City);
+                                        }
+                                        if (location.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", location.State);
+                                        }
+                                        if (location.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", location.Country);
+                                        }
+                                    } 
+                                    if (seller.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", seller.AverageFeedbackRating);
+                                    }
+                                    if (seller.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedback);
+                                    }
+                                    if (seller.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedbackPages);
+                                    }
+                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedbackSummary");
+                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                        {
+                                            Console.WriteLine("                                    FeedbackDateRange");
+                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                            {
+                                                Console.WriteLine("                                        SellerFeedbackRating");
+                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                {
+                                                    Console.WriteLine("                                            Count");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Count);
+                                                }
+                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                {
+                                                    Console.WriteLine("                                            Percentage");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Percentage);
+                                                }
+                                            }
+                                        }
+                                    } 
+                                    if (seller.IsSetSellerFeedback()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedback");
+                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                        foreach (Feedback feedback in feedbackList) 
+                                        {
+                                            Console.WriteLine("                                    Feedback");
+                                            if (feedback.IsSetRating()) 
+                                            {
+                                                Console.WriteLine("                                        Rating");
+                                                Console.WriteLine("                                            {0}", feedback.Rating);
+                                            }
+                                            if (feedback.IsSetComment()) 
+                                            {
+                                                Console.WriteLine("                                        Comment");
+                                                Console.WriteLine("                                            {0}", feedback.Comment);
+                                            }
+                                            if (feedback.IsSetDate()) 
+                                            {
+                                                Console.WriteLine("                                        Date");
+                                                Console.WriteLine("                                            {0}", feedback.Date);
+                                            }
+                                            if (feedback.IsSetRatedBy()) 
+                                            {
+                                                Console.WriteLine("                                        RatedBy");
+                                                Console.WriteLine("                                            {0}", feedback.RatedBy);
+                                            }
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetOfferAttributes()) 
+                                {
+                                    Console.WriteLine("                            OfferAttributes");
+                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                    if (offerAttributes.IsSetCondition()) 
+                                    {
+                                        Console.WriteLine("                                Condition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.Condition);
+                                    }
+                                    if (offerAttributes.IsSetSubCondition()) 
+                                    {
+                                        Console.WriteLine("                                SubCondition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.SubCondition);
+                                    }
+                                    if (offerAttributes.IsSetConditionNote()) 
+                                    {
+                                        Console.WriteLine("                                ConditionNote");
+                                        Console.WriteLine("                                    {0}", offerAttributes.ConditionNote);
+                                    }
+                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                    {
+                                        Console.WriteLine("                                WillShipExpedited");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipExpedited);
+                                    }
+                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                    {
+                                        Console.WriteLine("                                WillShipInternational");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipInternational);
+                                    }
+                                } 
+                                List<OfferListing> offerListingList = offer.OfferListing;
+                                foreach (OfferListing offerListing in offerListingList) 
+                                {
+                                    Console.WriteLine("                            OfferListing");
+                                    if (offerListing.IsSetOfferListingId()) 
+                                    {
+                                        Console.WriteLine("                                OfferListingId");
+                                        Console.WriteLine("                                    {0}", offerListing.OfferListingId);
+                                    }
+                                    if (offerListing.IsSetExchangeId()) 
+                                    {
+                                        Console.WriteLine("                                ExchangeId");
+                                        Console.WriteLine("                                    {0}", offerListing.ExchangeId);
+                                    }
+                                    if (offerListing.IsSetPrice()) 
+                                    {
+                                        Console.WriteLine("                                Price");
+                                        Price  price = offerListing.Price;
+                                        if (price.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", price.Amount);
+                                        }
+                                        if (price.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", price.CurrencyCode);
+                                        }
+                                        if (price.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", price.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                SalePrice");
+                                        Price  salePrice = offerListing.SalePrice;
+                                        if (salePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", salePrice.Amount);
+                                        }
+                                        if (salePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", salePrice.CurrencyCode);
+                                        }
+                                        if (salePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", salePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetAmountSaved()) 
+                                    {
+                                        Console.WriteLine("                                AmountSaved");
+                                        Price  amountSaved = offerListing.AmountSaved;
+                                        if (amountSaved.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", amountSaved.Amount);
+                                        }
+                                        if (amountSaved.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", amountSaved.CurrencyCode);
+                                        }
+                                        if (amountSaved.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", amountSaved.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetPercentageSaved()) 
+                                    {
+                                        Console.WriteLine("                                PercentageSaved");
+                                        Console.WriteLine("                                    {0}", offerListing.PercentageSaved);
+                                    }
+                                    if (offerListing.IsSetAvailability()) 
+                                    {
+                                        Console.WriteLine("                                Availability");
+                                        Console.WriteLine("                                    {0}", offerListing.Availability);
+                                    }
+                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                    {
+                                        Console.WriteLine("                                AvailabilityAttributes");
+                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                        {
+                                            Console.WriteLine("                                    AvailabilityType");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.AvailabilityType);
+                                        }
+                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                        {
+                                            Console.WriteLine("                                    IsPreorder");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.IsPreorder);
+                                        }
+                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MinimumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MinimumHours);
+                                        }
+                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MaximumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MaximumHours);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetQuantity()) 
+                                    {
+                                        Console.WriteLine("                                Quantity");
+                                        Console.WriteLine("                                    {0}", offerListing.Quantity);
+                                    }
+                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreAddress");
+                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                        if (ISPUStoreAddress.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Name);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                        {
+                                            Console.WriteLine("                                    Address1");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address1);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                        {
+                                            Console.WriteLine("                                    Address2");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address2);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                        {
+                                            Console.WriteLine("                                    Address3");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address3);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.City);
+                                        }
+                                        if (ISPUStoreAddress.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.State);
+                                        }
+                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                        {
+                                            Console.WriteLine("                                    PostalCode");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.PostalCode);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Country);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetISPUStoreHours()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreHours");
+                                        Console.WriteLine("                                    {0}", offerListing.ISPUStoreHours);
+                                    }
+                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                    {
+                                        Console.WriteLine("                                IsEligibleForSuperSaverShipping");
+                                        Console.WriteLine("                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                    }
+                                    if (offerListing.IsSetSalesRestriction()) 
+                                    {
+                                        Console.WriteLine("                                SalesRestriction");
+                                        Console.WriteLine("                                    {0}", offerListing.SalesRestriction);
+                                    }
+                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                    {
+                                        Console.WriteLine("                                ShippingCharge");
+                                        if (shippingCharge.IsSetShippingType()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingType");
+                                            Console.WriteLine("                                        {0}", shippingCharge.ShippingType);
+                                        }
+                                        if (shippingCharge.IsSetShippingPrice()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingPrice");
+                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                            if (shippingPrice.IsSetAmount()) 
+                                            {
+                                                Console.WriteLine("                                        Amount");
+                                                Console.WriteLine("                                            {0}", shippingPrice.Amount);
+                                            }
+                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                            {
+                                                Console.WriteLine("                                        CurrencyCode");
+                                                Console.WriteLine("                                            {0}", shippingPrice.CurrencyCode);
+                                            }
+                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        FormattedPrice");
+                                                Console.WriteLine("                                            {0}", shippingPrice.FormattedPrice);
+                                            }
+                                        } 
+                                    }
+                                }
+                                if (offer.IsSetLoyaltyPoints()) 
+                                {
+                                    Console.WriteLine("                            LoyaltyPoints");
+                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                    if (loyaltyPoints.IsSetPoints()) 
+                                    {
+                                        Console.WriteLine("                                Points");
+                                        Console.WriteLine("                                    {0}", loyaltyPoints.Points);
+                                    }
+                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                    {
+                                        Console.WriteLine("                                TypicalRedemptionValue");
+                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.Amount);
+                                        }
+                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                        }
+                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetPromotions()) 
+                                {
+                                    Console.WriteLine("                            Promotions");
+                                    Promotions  promotions = offer.Promotions;
+                                    List<Promotion> promotionList = promotions.Promotion;
+                                    foreach (Promotion promotion in promotionList) 
+                                    {
+                                        Console.WriteLine("                                Promotion");
+                                        if (promotion.IsSetSummary()) 
+                                        {
+                                            Console.WriteLine("                                    Summary");
+                                            PromotionSummary  summary = promotion.Summary;
+                                            if (summary.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", summary.PromotionId);
+                                            }
+                                            if (summary.IsSetCategory()) 
+                                            {
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", summary.Category);
+                                            }
+                                            if (summary.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", summary.StartDate);
+                                            }
+                                            if (summary.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", summary.EndDate);
+                                            }
+                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirementDescription");
+                                                Console.WriteLine("                                            {0}", summary.EligibilityRequirementDescription);
+                                            }
+                                            if (summary.IsSetBenefitDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BenefitDescription");
+                                                Console.WriteLine("                                            {0}", summary.BenefitDescription);
+                                            }
+                                            if (summary.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", summary.TermsAndConditions);
+                                            }
+                                        } 
+                                        if (promotion.IsSetDetails()) 
+                                        {
+                                            Console.WriteLine("                                    Details");
+                                            PromotionDetails  details = promotion.Details;
+                                            if (details.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", details.MerchantId);
+                                            }
+                                            if (details.IsSetOwningMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        OwningMerchantId");
+                                                Console.WriteLine("                                            {0}", details.OwningMerchantId);
+                                            }
+                                            if (details.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", details.PromotionId);
+                                            }
+                                            if (details.IsSetPromotionCategory()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionCategory");
+                                                Console.WriteLine("                                            {0}", details.PromotionCategory);
+                                            }
+                                            if (details.IsSetMerchantPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantPromotionId");
+                                                Console.WriteLine("                                            {0}", details.MerchantPromotionId);
+                                            }
+                                            if (details.IsSetGroupClaimCode()) 
+                                            {
+                                                Console.WriteLine("                                        GroupClaimCode");
+                                                Console.WriteLine("                                            {0}", details.GroupClaimCode);
+                                            }
+                                            if (details.IsSetCouponCombinationType()) 
+                                            {
+                                                Console.WriteLine("                                        CouponCombinationType");
+                                                Console.WriteLine("                                            {0}", details.CouponCombinationType);
+                                            }
+                                            if (details.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", details.StartDate);
+                                            }
+                                            if (details.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", details.EndDate);
+                                            }
+                                            if (details.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", details.TermsAndConditions);
+                                            }
+                                            if (details.IsSetEligibilityRequirements()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirements");
+                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                {
+                                                    Console.WriteLine("                                            EligibilityRequirement");
+                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                    {
+                                                        Console.WriteLine("                                                EligibilityRequirementType");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.Quantity);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                CurrencyAmount");
+                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                        if (currencyAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.Amount);
+                                                        }
+                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.CurrencyCode);
+                                                        }
+                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetBenefits()) 
+                                            {
+                                                Console.WriteLine("                                        Benefits");
+                                                PromotionBenefits  benefits = details.Benefits;
+                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                {
+                                                    Console.WriteLine("                                            Benefit");
+                                                    if (benefit.IsSetBenefitType()) 
+                                                    {
+                                                        Console.WriteLine("                                                BenefitType");
+                                                        Console.WriteLine("                                                    {0}", benefit.BenefitType);
+                                                    }
+                                                    if (benefit.IsSetComponentType()) 
+                                                    {
+                                                        Console.WriteLine("                                                ComponentType");
+                                                        Console.WriteLine("                                                    {0}", benefit.ComponentType);
+                                                    }
+                                                    if (benefit.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", benefit.Quantity);
+                                                    }
+                                                    if (benefit.IsSetPercentOff()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentOff");
+                                                        Console.WriteLine("                                                    {0}", benefit.PercentOff);
+                                                    }
+                                                    if (benefit.IsSetFixedAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                FixedAmount");
+                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                        if (fixedAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.Amount);
+                                                        }
+                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.CurrencyCode);
+                                                        }
+                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (benefit.IsSetCeiling()) 
+                                                    {
+                                                        Console.WriteLine("                                                Ceiling");
+                                                        Price  ceiling = benefit.Ceiling;
+                                                        if (ceiling.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", ceiling.Amount);
+                                                        }
+                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", ceiling.CurrencyCode);
+                                                        }
+                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", ceiling.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetItemApplicability()) 
+                                            {
+                                                Console.WriteLine("                                        ItemApplicability");
+                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                if (itemApplicability.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.ASIN);
+                                                }
+                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInBenefitSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInBenefitSet);
+                                                }
+                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInEligibilityRequirementSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                }
+                                            } 
+                                            if (details.IsSetMerchandisingMessage()) 
+                                            {
+                                                Console.WriteLine("                                        MerchandisingMessage");
+                                                Console.WriteLine("                                            {0}", details.MerchandisingMessage);
+                                            }
+                                        } 
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetVariationSummary()) 
+                        {
+                            Console.WriteLine("                    VariationSummary");
+                            VariationSummary  variationSummary = item.VariationSummary;
+                            if (variationSummary.IsSetLowestPrice()) 
+                            {
+                                Console.WriteLine("                        LowestPrice");
+                                Price  lowestPrice = variationSummary.LowestPrice;
+                                if (lowestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestPrice.Amount);
+                                }
+                                if (lowestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestPrice.CurrencyCode);
+                                }
+                                if (lowestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestPrice()) 
+                            {
+                                Console.WriteLine("                        HighestPrice");
+                                Price  highestPrice = variationSummary.HighestPrice;
+                                if (highestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestPrice.Amount);
+                                }
+                                if (highestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestPrice.CurrencyCode);
+                                }
+                                if (highestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetLowestSalePrice()) 
+                            {
+                                Console.WriteLine("                        LowestSalePrice");
+                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                if (lowestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.Amount);
+                                }
+                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.CurrencyCode);
+                                }
+                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestSalePrice()) 
+                            {
+                                Console.WriteLine("                        HighestSalePrice");
+                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                if (highestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestSalePrice.Amount);
+                                }
+                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestSalePrice.CurrencyCode);
+                                }
+                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetSingleMerchantId()) 
+                            {
+                                Console.WriteLine("                        SingleMerchantId");
+                                Console.WriteLine("                            {0}", variationSummary.SingleMerchantId);
+                            }
+                        } 
+                        if (item.IsSetVariations()) 
+                        {
+                            Console.WriteLine("                    Variations");
+                            Variations  variations = item.Variations;
+                            if (variations.IsSetTotalVariations()) 
+                            {
+                                Console.WriteLine("                        TotalVariations");
+                                Console.WriteLine("                            {0}", variations.TotalVariations);
+                            }
+                            if (variations.IsSetTotalVariationPages()) 
+                            {
+                                Console.WriteLine("                        TotalVariationPages");
+                                Console.WriteLine("                            {0}", variations.TotalVariationPages);
+                            }
+                            if (variations.IsSetVariationDimensions()) 
+                            {
+                                Console.WriteLine("                        VariationDimensions");
+                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                foreach (String variationDimension in variationDimensionList) 
+                                { 
+                                    Console.WriteLine("                            VariationDimension");
+                                    Console.WriteLine("                                {0}", variationDimension);
+                                }	
+                            } 
+                        } 
+                        if (item.IsSetCustomerReviews()) 
+                        {
+                            Console.WriteLine("                    CustomerReviews");
+                            CustomerReviews  customerReviews = item.CustomerReviews;
+                            if (customerReviews.IsSetAverageRating()) 
+                            {
+                                Console.WriteLine("                        AverageRating");
+                                Console.WriteLine("                            {0}", customerReviews.AverageRating);
+                            }
+                            if (customerReviews.IsSetTotalReviews()) 
+                            {
+                                Console.WriteLine("                        TotalReviews");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviews);
+                            }
+                            if (customerReviews.IsSetTotalReviewPages()) 
+                            {
+                                Console.WriteLine("                        TotalReviewPages");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviewPages);
+                            }
+                            List<Review> reviewList = customerReviews.Review;
+                            foreach (Review review in reviewList) 
+                            {
+                                Console.WriteLine("                        Review");
+                                if (review.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", review.ASIN);
+                                }
+                                if (review.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", review.Rating);
+                                }
+                                if (review.IsSetHelpfulVotes()) 
+                                {
+                                    Console.WriteLine("                            HelpfulVotes");
+                                    Console.WriteLine("                                {0}", review.HelpfulVotes);
+                                }
+                                if (review.IsSetCustomerId()) 
+                                {
+                                    Console.WriteLine("                            CustomerId");
+                                    Console.WriteLine("                                {0}", review.CustomerId);
+                                }
+                                if (review.IsSetReviewer()) 
+                                {
+                                    Console.WriteLine("                            Reviewer");
+                                    Reviewer  reviewer = review.Reviewer;
+                                    if (reviewer.IsSetCustomerId()) 
+                                    {
+                                        Console.WriteLine("                                CustomerId");
+                                        Console.WriteLine("                                    {0}", reviewer.CustomerId);
+                                    }
+                                    if (reviewer.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", reviewer.Name);
+                                    }
+                                    if (reviewer.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", reviewer.Nickname);
+                                    }
+                                    if (reviewer.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        Console.WriteLine("                                    {0}", reviewer.Location);
+                                    }
+                                } 
+                                if (review.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", review.TotalVotes);
+                                }
+                                if (review.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", review.Date);
+                                }
+                                if (review.IsSetSummary()) 
+                                {
+                                    Console.WriteLine("                            Summary");
+                                    Console.WriteLine("                                {0}", review.Summary);
+                                }
+                                if (review.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", review.Content);
+                                }
+                            }
+                        } 
+                        if (item.IsSetEditorialReviews()) 
+                        {
+                            Console.WriteLine("                    EditorialReviews");
+                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                            {
+                                Console.WriteLine("                        EditorialReview");
+                                if (editorialReview.IsSetSource()) 
+                                {
+                                    Console.WriteLine("                            Source");
+                                    Console.WriteLine("                                {0}", editorialReview.Source);
+                                }
+                                if (editorialReview.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", editorialReview.Content);
+                                }
+                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                {
+                                    Console.WriteLine("                            IsLinkSuppressed");
+                                    Console.WriteLine("                                {0}", editorialReview.IsLinkSuppressed);
+                                }
+                            }
+                        } 
+                        if (item.IsSetSimilarProducts()) 
+                        {
+                            Console.WriteLine("                    SimilarProducts");
+                            SimilarProducts  similarProducts = item.SimilarProducts;
+                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                            foreach (SimilarProduct similarProduct in similarProductList) 
+                            {
+                                Console.WriteLine("                        SimilarProduct");
+                                if (similarProduct.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", similarProduct.ASIN);
+                                }
+                                if (similarProduct.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", similarProduct.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetAccessories()) 
+                        {
+                            Console.WriteLine("                    Accessories");
+                            Accessories  accessories = item.Accessories;
+                            List<Accessory> accessoryList = accessories.Accessory;
+                            foreach (Accessory accessory in accessoryList) 
+                            {
+                                Console.WriteLine("                        Accessory");
+                                if (accessory.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", accessory.ASIN);
+                                }
+                                if (accessory.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", accessory.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTracks()) 
+                        {
+                            Console.WriteLine("                    Tracks");
+                            Tracks  tracks = item.Tracks;
+                            List<Disc> discList = tracks.Disc;
+                            foreach (Disc disc in discList) 
+                            {
+                                Console.WriteLine("                        Disc");
+                                List<Track> trackList = disc.Track;
+                                foreach (Track track in trackList) 
+                                {
+                                    Console.WriteLine("                            Track");
+                                }
+                            }
+                        } 
+                        if (item.IsSetBrowseNodes()) 
+                        {
+                            Console.WriteLine("                    BrowseNodes");
+                            BrowseNodes  browseNodes = item.BrowseNodes;
+                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                            foreach (BrowseNode browseNode in browseNodeList) 
+                            {
+                                Console.WriteLine("                        BrowseNode");
+                                if (browseNode.IsSetBrowseNodeId()) 
+                                {
+                                    Console.WriteLine("                            BrowseNodeId");
+                                    Console.WriteLine("                                {0}", browseNode.BrowseNodeId);
+                                }
+                                if (browseNode.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", browseNode.Name);
+                                }
+                                if (browseNode.IsSetIsCategoryRoot()) 
+                                {
+                                    Console.WriteLine("                            IsCategoryRoot");
+                                    Console.WriteLine("                                {0}", browseNode.IsCategoryRoot);
+                                }
+                                if (browseNode.IsSetProperties()) 
+                                {
+                                    Console.WriteLine("                            Properties");
+                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                    List<Property> propertyList = properties.Property;
+                                    foreach (Property property in propertyList) 
+                                    {
+                                        Console.WriteLine("                                Property");
+                                        if (property.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", property.Name);
+                                        }
+                                        if (property.IsSetValue()) 
+                                        {
+                                            Console.WriteLine("                                    Value");
+                                            Console.WriteLine("                                        {0}", property.Value);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetChildren()) 
+                                {
+                                    Console.WriteLine("                            Children");
+                                    BrowseNodeChildren  children = browseNode.Children;
+                                } 
+                                if (browseNode.IsSetAncestors()) 
+                                {
+                                    Console.WriteLine("                            Ancestors");
+                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                } 
+                                if (browseNode.IsSetTopSellers()) 
+                                {
+                                    Console.WriteLine("                            TopSellers");
+                                    TopSellers  topSellers = browseNode.TopSellers;
+                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                    foreach (TopSeller topSeller in topSellerList) 
+                                    {
+                                        Console.WriteLine("                                TopSeller");
+                                        if (topSeller.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", topSeller.ASIN);
+                                        }
+                                        if (topSeller.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", topSeller.Title);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetNewReleases()) 
+                                {
+                                    Console.WriteLine("                            NewReleases");
+                                    NewReleases  newReleases = browseNode.NewReleases;
+                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                    foreach (NewRelease newRelease in newReleaseList) 
+                                    {
+                                        Console.WriteLine("                                NewRelease");
+                                        if (newRelease.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", newRelease.ASIN);
+                                        }
+                                        if (newRelease.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", newRelease.Title);
+                                        }
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetSearchInside()) 
+                        {
+                            Console.WriteLine("                    SearchInside");
+                            SearchInside  searchInside = item.SearchInside;
+                            if (searchInside.IsSetTotalExcerpts()) 
+                            {
+                                Console.WriteLine("                        TotalExcerpts");
+                                Console.WriteLine("                            {0}", searchInside.TotalExcerpts);
+                            }
+                            if (searchInside.IsSetExcerpt()) 
+                            {
+                                Console.WriteLine("                        Excerpt");
+                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                if (excerpt.IsSetChecksum()) 
+                                {
+                                    Console.WriteLine("                            Checksum");
+                                    Console.WriteLine("                                {0}", excerpt.Checksum);
+                                }
+                                if (excerpt.IsSetPageType()) 
+                                {
+                                    Console.WriteLine("                            PageType");
+                                    Console.WriteLine("                                {0}", excerpt.PageType);
+                                }
+                                if (excerpt.IsSetPageNumber()) 
+                                {
+                                    Console.WriteLine("                            PageNumber");
+                                    Console.WriteLine("                                {0}", excerpt.PageNumber);
+                                }
+                                if (excerpt.IsSetSequenceNumber()) 
+                                {
+                                    Console.WriteLine("                            SequenceNumber");
+                                    Console.WriteLine("                                {0}", excerpt.SequenceNumber);
+                                }
+                                if (excerpt.IsSetText()) 
+                                {
+                                    Console.WriteLine("                            Text");
+                                    Console.WriteLine("                                {0}", excerpt.Text);
+                                }
+                            } 
+                        } 
+                        if (item.IsSetListmaniaLists()) 
+                        {
+                            Console.WriteLine("                    ListmaniaLists");
+                            ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                            List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                            foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                            {
+                                Console.WriteLine("                        ListmaniaList");
+                                if (listmaniaList.IsSetListId()) 
+                                {
+                                    Console.WriteLine("                            ListId");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListId);
+                                }
+                                if (listmaniaList.IsSetListName()) 
+                                {
+                                    Console.WriteLine("                            ListName");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListName);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = item.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                }
+                                List<TaggedListmaniaLists> taggedListmaniaListsList = tag.TaggedListmaniaLists;
+                                foreach (TaggedListmaniaLists taggedListmaniaLists in taggedListmaniaListsList) 
+                                {
+                                    Console.WriteLine("                            TaggedListmaniaLists");
+                                    if (taggedListmaniaLists.IsSetList()) 
+                                    {
+                                        Console.WriteLine("                                List");
+                                        List  list = taggedListmaniaLists.List;
+                                        if (list.IsSetListId()) 
+                                        {
+                                            Console.WriteLine("                                    ListId");
+                                            Console.WriteLine("                                        {0}", list.ListId);
+                                        }
+                                        if (list.IsSetListURL()) 
+                                        {
+                                            Console.WriteLine("                                    ListURL");
+                                            Console.WriteLine("                                        {0}", list.ListURL);
+                                        }
+                                        if (list.IsSetRegistryNumber()) 
+                                        {
+                                            Console.WriteLine("                                    RegistryNumber");
+                                            Console.WriteLine("                                        {0}", list.RegistryNumber);
+                                        }
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                                            }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListLookupSample.cs
new file mode 100644
index 0000000..e5f6cf9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListLookupSample.cs
@@ -0,0 +1,5132 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// List Lookup  Samples
+    /// </summary>
+    public class ListLookupSample
+    {
+    
+                                             
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The ListLookup operation returns, by default, summary information about a
+        /// list that you specify in the request. The summary information includes the:
+        /// <p/>
+        /// <ul>
+        /// <li>Creation date of the list</li>
+        /// <li>Name of the list's creator</li>
+        /// </ul>
+        /// <p/>
+        /// The operation returns up to ten sets of summary information per page.
+        /// <p/>
+        /// Lists are specified by list type and list ID, which can be found using ListSearch.
+        /// <p/>
+        /// You cannot lookup more than one list at a time in a single request.
+        /// You can, however, make a batch request to look for more than one list simultaneously.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListFull</li>
+        /// <li>ListItems</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Small</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">ListLookup request</param>
+        public static void InvokeListLookup(AmazonECS service, params ListLookupRequest [] request) 
+        {
+            try 
+            {
+                ListLookupResponse response = service.ListLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        ListLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Lists> listsList = response.Lists;
+                foreach (Lists lists in listsList) 
+                {
+                    Console.WriteLine("            Lists");
+                    if (lists.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", lists.TotalResults);
+                    }
+                    if (lists.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", lists.TotalPages);
+                    }
+                    List<List> listList = lists.List;
+                    foreach (List list in listList) 
+                    {
+                        Console.WriteLine("                List");
+                        if (list.IsSetListId()) 
+                        {
+                            Console.WriteLine("                    ListId");
+                            Console.WriteLine("                        {0}", list.ListId);
+                        }
+                        if (list.IsSetListURL()) 
+                        {
+                            Console.WriteLine("                    ListURL");
+                            Console.WriteLine("                        {0}", list.ListURL);
+                        }
+                        if (list.IsSetRegistryNumber()) 
+                        {
+                            Console.WriteLine("                    RegistryNumber");
+                            Console.WriteLine("                        {0}", list.RegistryNumber);
+                        }
+                        if (list.IsSetListName()) 
+                        {
+                            Console.WriteLine("                    ListName");
+                            Console.WriteLine("                        {0}", list.ListName);
+                        }
+                        if (list.IsSetListType()) 
+                        {
+                            Console.WriteLine("                    ListType");
+                            Console.WriteLine("                        {0}", list.ListType);
+                        }
+                        if (list.IsSetTotalItems()) 
+                        {
+                            Console.WriteLine("                    TotalItems");
+                            Console.WriteLine("                        {0}", list.TotalItems);
+                        }
+                        if (list.IsSetTotalPages()) 
+                        {
+                            Console.WriteLine("                    TotalPages");
+                            Console.WriteLine("                        {0}", list.TotalPages);
+                        }
+                        if (list.IsSetDateCreated()) 
+                        {
+                            Console.WriteLine("                    DateCreated");
+                            Console.WriteLine("                        {0}", list.DateCreated);
+                        }
+                        if (list.IsSetOccasionDate()) 
+                        {
+                            Console.WriteLine("                    OccasionDate");
+                            Console.WriteLine("                        {0}", list.OccasionDate);
+                        }
+                        if (list.IsSetCustomerName()) 
+                        {
+                            Console.WriteLine("                    CustomerName");
+                            Console.WriteLine("                        {0}", list.CustomerName);
+                        }
+                        if (list.IsSetPartnerName()) 
+                        {
+                            Console.WriteLine("                    PartnerName");
+                            Console.WriteLine("                        {0}", list.PartnerName);
+                        }
+                        if (list.IsSetAdditionalName()) 
+                        {
+                            Console.WriteLine("                    AdditionalName");
+                            Console.WriteLine("                        {0}", list.AdditionalName);
+                        }
+                        if (list.IsSetComment()) 
+                        {
+                            Console.WriteLine("                    Comment");
+                            Console.WriteLine("                        {0}", list.Comment);
+                        }
+                        if (list.IsSetImage()) 
+                        {
+                            Console.WriteLine("                    Image");
+                            Image  image = list.Image;
+                            if (image.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", image.URL);
+                            }
+                            if (image.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = image.Height;
+                            } 
+                            if (image.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = image.Width;
+                            } 
+                            if (image.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", image.IsVerified);
+                            }
+                        } 
+                        if (list.IsSetAverageRating()) 
+                        {
+                            Console.WriteLine("                    AverageRating");
+                            Console.WriteLine("                        {0}", list.AverageRating);
+                        }
+                        if (list.IsSetTotalVotes()) 
+                        {
+                            Console.WriteLine("                    TotalVotes");
+                            Console.WriteLine("                        {0}", list.TotalVotes);
+                        }
+                        if (list.IsSetTotalTimesRead()) 
+                        {
+                            Console.WriteLine("                    TotalTimesRead");
+                            Console.WriteLine("                        {0}", list.TotalTimesRead);
+                        }
+                        if (list.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = list.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetItem()) 
+                                    {
+                                        Console.WriteLine("                                Item");
+                                        Item  item = taggedItems.Item;
+                                        if (item.IsSetAlternateVersions()) 
+                                        {
+                                            Console.WriteLine("                                    AlternateVersions");
+                                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                                            {
+                                                Console.WriteLine("                                        AlternateVersion");
+                                                if (alternateVersion.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.ASIN);
+                                                }
+                                                if (alternateVersion.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Title);
+                                                }
+                                                if (alternateVersion.IsSetBinding()) 
+                                                {
+                                                    Console.WriteLine("                                            Binding");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Binding);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", item.ASIN);
+                                        }
+                                        if (item.IsSetParentASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ParentASIN");
+                                            Console.WriteLine("                                        {0}", item.ParentASIN);
+                                        }
+                                        if (item.IsSetDetailPageURL()) 
+                                        {
+                                            Console.WriteLine("                                    DetailPageURL");
+                                            Console.WriteLine("                                        {0}", item.DetailPageURL);
+                                        }
+                                        if (item.IsSetSalesRank()) 
+                                        {
+                                            Console.WriteLine("                                    SalesRank");
+                                            Console.WriteLine("                                        {0}", item.SalesRank);
+                                        }
+                                        if (item.IsSetSmallImage()) 
+                                        {
+                                            Console.WriteLine("                                    SmallImage");
+                                            Image  smallImage = item.SmallImage;
+                                            if (smallImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", smallImage.URL);
+                                            }
+                                            if (smallImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = smallImage.Height;
+                                            } 
+                                            if (smallImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = smallImage.Width;
+                                            } 
+                                            if (smallImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", smallImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetMediumImage()) 
+                                        {
+                                            Console.WriteLine("                                    MediumImage");
+                                            Image  mediumImage = item.MediumImage;
+                                            if (mediumImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", mediumImage.URL);
+                                            }
+                                            if (mediumImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = mediumImage.Height;
+                                            } 
+                                            if (mediumImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = mediumImage.Width;
+                                            } 
+                                            if (mediumImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", mediumImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetLargeImage()) 
+                                        {
+                                            Console.WriteLine("                                    LargeImage");
+                                            Image  largeImage = item.LargeImage;
+                                            if (largeImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", largeImage.URL);
+                                            }
+                                            if (largeImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = largeImage.Height;
+                                            } 
+                                            if (largeImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = largeImage.Width;
+                                            } 
+                                            if (largeImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", largeImage.IsVerified);
+                                            }
+                                        } 
+                                        List<ImageSets> imageSetsList = item.ImageSets;
+                                        foreach (ImageSets imageSets in imageSetsList) 
+                                        {
+                                            Console.WriteLine("                                    ImageSets");
+                                            if (imageSets.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", imageSets.MerchantId);
+                                            }
+                                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                                            foreach (ImageSet imageSet in imageSetList) 
+                                            {
+                                                Console.WriteLine("                                        ImageSet");
+                                                if (imageSet.IsSetSwatchImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SwatchImage");
+                                                    Image  swatchImage = imageSet.SwatchImage;
+                                                    if (swatchImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.URL);
+                                                    }
+                                                    if (swatchImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = swatchImage.Height;
+                                                    } 
+                                                    if (swatchImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = swatchImage.Width;
+                                                    } 
+                                                    if (swatchImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetSmallImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SmallImage");
+                                                    Image  smallImage = imageSet.SmallImage;
+                                                    if (smallImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", smallImage.URL);
+                                                    }
+                                                    if (smallImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = smallImage.Height;
+                                                    } 
+                                                    if (smallImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = smallImage.Width;
+                                                    } 
+                                                    if (smallImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", smallImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetThumbnailImage()) 
+                                                {
+                                                    Console.WriteLine("                                            ThumbnailImage");
+                                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                                    if (thumbnailImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.URL);
+                                                    }
+                                                    if (thumbnailImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                                    } 
+                                                    if (thumbnailImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                                    } 
+                                                    if (thumbnailImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetTinyImage()) 
+                                                {
+                                                    Console.WriteLine("                                            TinyImage");
+                                                    Image  tinyImage = imageSet.TinyImage;
+                                                    if (tinyImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.URL);
+                                                    }
+                                                    if (tinyImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = tinyImage.Height;
+                                                    } 
+                                                    if (tinyImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = tinyImage.Width;
+                                                    } 
+                                                    if (tinyImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetMediumImage()) 
+                                                {
+                                                    Console.WriteLine("                                            MediumImage");
+                                                    Image  mediumImage = imageSet.MediumImage;
+                                                    if (mediumImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.URL);
+                                                    }
+                                                    if (mediumImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = mediumImage.Height;
+                                                    } 
+                                                    if (mediumImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = mediumImage.Width;
+                                                    } 
+                                                    if (mediumImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetLargeImage()) 
+                                                {
+                                                    Console.WriteLine("                                            LargeImage");
+                                                    Image  largeImage = imageSet.LargeImage;
+                                                    if (largeImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", largeImage.URL);
+                                                    }
+                                                    if (largeImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = largeImage.Height;
+                                                    } 
+                                                    if (largeImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = largeImage.Width;
+                                                    } 
+                                                    if (largeImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", largeImage.IsVerified);
+                                                    }
+                                                } 
+                                            }
+                                        }
+                                        if (item.IsSetItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    ItemAttributes");
+                                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                                            List<String> actorList  =  itemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (itemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = itemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            List<String> ageList  =  itemAttributes.Age;
+                                            foreach (String age in ageList) 
+                                            { 
+                                                Console.WriteLine("                                        Age");
+                                                Console.WriteLine("                                            {0}", age);
+                                            }	
+                                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AnalogVideoFormat");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AnalogVideoFormat);
+                                            }
+                                            if (itemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  itemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (itemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AspectRatio);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyInstructions);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyRequired);
+                                            }
+                                            if (itemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  itemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (itemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BackFinding);
+                                            }
+                                            if (itemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BandMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesIncluded);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesRequired);
+                                            }
+                                            if (itemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                                            } 
+                                            if (itemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryDescription);
+                                            }
+                                            if (itemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryType);
+                                            }
+                                            if (itemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BezelMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Binding);
+                                            }
+                                            if (itemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Brand);
+                                            }
+                                            if (itemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                                            } 
+                                            if (itemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                                            } 
+                                            if (itemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseType);
+                                            }
+                                            if (itemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CatalogNumber);
+                                            }
+                                            List<String> categoryList  =  itemAttributes.Category;
+                                            foreach (String category in categoryList) 
+                                            { 
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", category);
+                                            }	
+                                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                                            foreach (String categoryBin in categoryBinList) 
+                                            { 
+                                                Console.WriteLine("                                        CategoryBin");
+                                                Console.WriteLine("                                            {0}", categoryBin);
+                                            }	
+                                            if (itemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ChainType);
+                                            }
+                                            List<String> characterList  =  itemAttributes.Character;
+                                            foreach (String character in characterList) 
+                                            { 
+                                                Console.WriteLine("                                        Character");
+                                                Console.WriteLine("                                            {0}", character);
+                                            }	
+                                            if (itemAttributes.IsSetCEROAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        CEROAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CEROAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClaspType);
+                                            }
+                                            if (itemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClothingSize);
+                                            }
+                                            if (itemAttributes.IsSetClubType()) 
+                                            {
+                                                Console.WriteLine("                                        ClubType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClubType);
+                                            }
+                                            if (itemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Color);
+                                            }
+                                            if (itemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Compatibility);
+                                            }
+                                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                                            foreach (String compatibleDevices in compatibleDevicesList) 
+                                            { 
+                                                Console.WriteLine("                                        CompatibleDevices");
+                                                Console.WriteLine("                                            {0}", compatibleDevices);
+                                            }	
+                                            if (itemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerHardwareType);
+                                            }
+                                            if (itemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerPlatform);
+                                            }
+                                            if (itemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Connectivity);
+                                            }
+                                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Country);
+                                            }
+                                            if (itemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUManufacturer);
+                                            }
+                                            if (itemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = itemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (itemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Cuisine);
+                                            }
+                                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                                            { 
+                                                Console.WriteLine("                                        DataLinkProtocol");
+                                                Console.WriteLine("                                            {0}", dataLinkProtocol);
+                                            }	
+                                            if (itemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeliveryOption);
+                                            }
+                                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (itemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Department);
+                                            }
+                                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (itemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialColor);
+                                            }
+                                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  itemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                                            {
+                                                Console.WriteLine("                                        DisplayColorSupport");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DisplayColorSupport);
+                                            }
+                                            if (itemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                                            } 
+                                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (itemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDLayers);
+                                            }
+                                            if (itemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDSides);
+                                            }
+                                            if (itemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DPCI);
+                                            }
+                                            if (itemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.EAN);
+                                            }
+                                            if (itemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Edition);
+                                            }
+                                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                                            foreach (String educationalFocus in educationalFocusList) 
+                                            { 
+                                                Console.WriteLine("                                        EducationalFocus");
+                                                Console.WriteLine("                                            {0}", educationalFocus);
+                                            }	
+                                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                                            foreach (String ethnicity in ethnicityList) 
+                                            { 
+                                                Console.WriteLine("                                        Ethnicity");
+                                                Console.WriteLine("                                            {0}", ethnicity);
+                                            }	
+                                            if (itemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ESRBAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (itemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FabricType);
+                                            }
+                                            if (itemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  itemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (itemAttributes.IsSetFilmColorType()) 
+                                            {
+                                                Console.WriteLine("                                        FilmColorType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FilmColorType);
+                                            }
+                                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (itemAttributes.IsSetFlavorName()) 
+                                            {
+                                                Console.WriteLine("                                        FlavorName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FlavorName);
+                                            }
+                                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  itemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                                            foreach (String formFactor in formFactorList) 
+                                            { 
+                                                Console.WriteLine("                                        FormFactor");
+                                                Console.WriteLine("                                            {0}", formFactor);
+                                            }	
+                                            if (itemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GemType);
+                                            }
+                                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        GemTypeSetElement");
+                                                Console.WriteLine("                                            {0}", gemTypeSetElement);
+                                            }	
+                                            List<String> genderList  =  itemAttributes.Gender;
+                                            foreach (String gender in genderList) 
+                                            { 
+                                                Console.WriteLine("                                        Gender");
+                                                Console.WriteLine("                                            {0}", gender);
+                                            }	
+                                            if (itemAttributes.IsSetGenre()) 
+                                            {
+                                                Console.WriteLine("                                        Genre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Genre);
+                                            }
+                                            if (itemAttributes.IsSetGLProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        GLProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GLProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubFlex()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubFlex");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubFlex);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubLoft()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubLoft");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubLoft);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsDescription);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarAttribute);
+                                            }
+                                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickThickness);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (itemAttributes.IsSetHandOrientation()) 
+                                            {
+                                                Console.WriteLine("                                        HandOrientation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HandOrientation);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskCount);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                                            } 
+                                            if (itemAttributes.IsSetHardDiskInterface()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskInterface);
+                                            }
+                                            if (itemAttributes.IsSetHardwarePlatform()) 
+                                            {
+                                                Console.WriteLine("                                        HardwarePlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardwarePlatform);
+                                            }
+                                            if (itemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasAutoFocus);
+                                            }
+                                            if (itemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasBurstMode);
+                                            }
+                                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasInCameraEditing);
+                                            }
+                                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (itemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasSelfTimer);
+                                            }
+                                            if (itemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasTripodMount);
+                                            }
+                                            if (itemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasVideoOut);
+                                            }
+                                            if (itemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasViewfinder);
+                                            }
+                                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HazardousMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HoursOfOperation);
+                                            }
+                                            if (itemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludedSoftware);
+                                            }
+                                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludesMp3Player);
+                                            }
+                                            if (itemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Ingredients);
+                                            }
+                                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        IngredientsSetElement");
+                                                Console.WriteLine("                                            {0}", ingredientsSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", itemAttributes.InstrumentKey);
+                                            }
+                                            List<String> interestList  =  itemAttributes.Interest;
+                                            foreach (String interest in interestList) 
+                                            { 
+                                                Console.WriteLine("                                        Interest");
+                                                Console.WriteLine("                                            {0}", interest);
+                                            }	
+                                            if (itemAttributes.IsSetIsAdultProduct()) 
+                                            {
+                                                Console.WriteLine("                                        IsAdultProduct");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAdultProduct);
+                                            }
+                                            if (itemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAutographed);
+                                            }
+                                            if (itemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ISBN);
+                                            }
+                                            if (itemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsFragile);
+                                            }
+                                            if (itemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsLabCreated);
+                                            }
+                                            if (itemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsMemorabilia);
+                                            }
+                                            if (itemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                                            } 
+                                            if (itemAttributes.IsSetIsPreannounce()) 
+                                            {
+                                                Console.WriteLine("                                        IsPreannounce");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsPreannounce);
+                                            }
+                                            if (itemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IssuesPerYear);
+                                            }
+                                            if (itemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.KeyboardDescription);
+                                            }
+                                            if (itemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Label);
+                                            }
+                                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                                            foreach (String languageName in languageNameList) 
+                                            { 
+                                                Console.WriteLine("                                        LanguageName");
+                                                Console.WriteLine("                                            {0}", languageName);
+                                            }	
+                                            if (itemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = itemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LegalDisclaimer);
+                                            }
+                                            if (itemAttributes.IsSetLensType()) 
+                                            {
+                                                Console.WriteLine("                                        LensType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LensType);
+                                            }
+                                            if (itemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LineVoltage);
+                                            }
+                                            if (itemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = itemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MacroFocusRange);
+                                            }
+                                            if (itemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MagazineType);
+                                            }
+                                            if (itemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MalletHardness);
+                                            }
+                                            if (itemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Manufacturer);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaterialType);
+                                            }
+                                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        MaterialTypeSetElement");
+                                                Console.WriteLine("                                            {0}", materialTypeSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumColorDepth);
+                                            }
+                                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (itemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (itemAttributes.IsSetMediaType()) 
+                                            {
+                                                Console.WriteLine("                                        MediaType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MediaType);
+                                            }
+                                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (itemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalStamp);
+                                            }
+                                            if (itemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalType);
+                                            }
+                                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MiniMovieDescription);
+                                            }
+                                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Model);
+                                            }
+                                            if (itemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModelYear);
+                                            }
+                                            if (itemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModemDescription);
+                                            }
+                                            if (itemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                                            } 
+                                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (itemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MouseDescription);
+                                            }
+                                            if (itemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MPN);
+                                            }
+                                            if (itemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MusicalStyle);
+                                            }
+                                            if (itemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NativeResolution);
+                                            }
+                                            if (itemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Neighborhood);
+                                            }
+                                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfDiscs);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfIssues);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfItems);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfKeys);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPages);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPearls);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStones);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStrings);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfTracks);
+                                            }
+                                            if (itemAttributes.IsSetOperatingSystem()) 
+                                            {
+                                                Console.WriteLine("                                        OperatingSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OperatingSystem);
+                                            }
+                                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalSensorResolution");
+                                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                                            } 
+                                            if (itemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                                            } 
+                                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OutputWattage);
+                                            }
+                                            if (itemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetPackageQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        PackageQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PackageQuantity);
+                                            }
+                                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                                            foreach (String pantLength in pantLengthList) 
+                                            { 
+                                                Console.WriteLine("                                        PantLength");
+                                                Console.WriteLine("                                            {0}", pantLength);
+                                            }	
+                                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                                            foreach (String pantSize in pantSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        PantSize");
+                                                Console.WriteLine("                                            {0}", pantSize);
+                                            }	
+                                            if (itemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlLustre);
+                                            }
+                                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlMinimumColor);
+                                            }
+                                            if (itemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlShape);
+                                            }
+                                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlStringingMethod);
+                                            }
+                                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (itemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlType);
+                                            }
+                                            if (itemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlUniformity);
+                                            }
+                                            if (itemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  itemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (itemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PriceRating);
+                                            }
+                                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                                            foreach (String primaryColor in primaryColorList) 
+                                            { 
+                                                Console.WriteLine("                                        PrimaryColor");
+                                                Console.WriteLine("                                            {0}", primaryColor);
+                                            }	
+                                            if (itemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProcessorCount);
+                                            }
+                                            if (itemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                                            {
+                                                Console.WriteLine("                                        ProductSiteLaunchDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductSiteLaunchDate);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeName()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeName);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeSubcategory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeSubcategory);
+                                            }
+                                            if (itemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PromotionalTag);
+                                            }
+                                            if (itemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PublicationDate);
+                                            }
+                                            if (itemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Publisher);
+                                            }
+                                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (itemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReadingLevel);
+                                            }
+                                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RecorderTrackCount);
+                                            }
+                                            if (itemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionCode);
+                                            }
+                                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionOfOrigin);
+                                            }
+                                            if (itemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReturnPolicy);
+                                            }
+                                            if (itemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableMemory);
+                                            }
+                                            if (itemAttributes.IsSetRemovableStorage()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableStorage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableStorage);
+                                            }
+                                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                                            {
+                                                Console.WriteLine("                                        RequiredVoltageRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RequiredVoltageRange);
+                                            }
+                                            if (itemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ResolutionModes);
+                                            }
+                                            if (itemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RingSize);
+                                            }
+                                            if (itemAttributes.IsSetRunningTime()) 
+                                            {
+                                                Console.WriteLine("                                        RunningTime");
+                                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                                            } 
+                                            if (itemAttributes.IsSetScentName()) 
+                                            {
+                                                Console.WriteLine("                                        ScentName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ScentName);
+                                            }
+                                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (itemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SettingType);
+                                            }
+                                            if (itemAttributes.IsSetShaftMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        ShaftMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ShaftMaterialType);
+                                            }
+                                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                                            foreach (String shoeSize in shoeSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        ShoeSize");
+                                                Console.WriteLine("                                            {0}", shoeSize);
+                                            }	
+                                            if (itemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Size);
+                                            }
+                                            if (itemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SizePerPearl);
+                                            }
+                                            if (itemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SkillLevel);
+                                            }
+                                            if (itemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SKU);
+                                            }
+                                            if (itemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoldInStores);
+                                            }
+                                            if (itemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoundCardDescription);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerCount);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneClarity);
+                                            }
+                                            if (itemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneColor);
+                                            }
+                                            if (itemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneCut);
+                                            }
+                                            if (itemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneShape);
+                                            }
+                                            if (itemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                                            } 
+                                            if (itemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Studio);
+                                            }
+                                            if (itemAttributes.IsSetStyle()) 
+                                            {
+                                                Console.WriteLine("                                        Style");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Style);
+                                            }
+                                            if (itemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                                            {
+                                                Console.WriteLine("                                        SupportedMediaSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SupportedMediaSize);
+                                            }
+                                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SystemMemoryType);
+                                            }
+                                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                                            foreach (String targetBrand in targetBrandList) 
+                                            { 
+                                                Console.WriteLine("                                        TargetBrand");
+                                                Console.WriteLine("                                            {0}", targetBrand);
+                                            }	
+                                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TellingPageIndicator);
+                                            }
+                                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Title);
+                                            }
+                                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalParallelPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSerialPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSBPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", itemAttributes.UPC);
+                                            }
+                                            if (itemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDenomination);
+                                            }
+                                            if (itemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDescription);
+                                            }
+                                            if (itemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Warranty);
+                                            }
+                                            if (itemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WatchMovementType);
+                                            }
+                                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (itemAttributes.IsSetWEEETaxValue()) 
+                                            {
+                                                Console.WriteLine("                                        WEEETaxValue");
+                                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                                if (WEEETaxValue.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.Amount);
+                                                }
+                                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.CurrencyCode);
+                                                }
+                                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetMerchantItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    MerchantItemAttributes");
+                                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                                            List<String> actorList  =  merchantItemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = merchantItemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  merchantItemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AspectRatio);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyInstructions);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  merchantItemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (merchantItemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BackFinding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BandMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesIncluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                                            } 
+                                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BezelMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Binding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Brand);
+                                            }
+                                            if (merchantItemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CatalogNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ChainType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClaspType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClothingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Color);
+                                            }
+                                            if (merchantItemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Compatibility);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerHardwareType);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerPlatform);
+                                            }
+                                            if (merchantItemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Connectivity);
+                                            }
+                                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Country);
+                                            }
+                                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        CountryOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CountryOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUManufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (merchantItemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Cuisine);
+                                            }
+                                            if (merchantItemAttributes.IsSetCustomizable()) 
+                                            {
+                                                Console.WriteLine("                                        Customizable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Customizable);
+                                            }
+                                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeliveryOption);
+                                            }
+                                            if (merchantItemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Department);
+                                            }
+                                            if (merchantItemAttributes.IsSetDescription()) 
+                                            {
+                                                Console.WriteLine("                                        Description");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Description);
+                                            }
+                                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  merchantItemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDLayers);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDSides);
+                                            }
+                                            if (merchantItemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DPCI);
+                                            }
+                                            if (merchantItemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.EAN);
+                                            }
+                                            if (merchantItemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Edition);
+                                            }
+                                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ESRBAgeRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FabricType);
+                                            }
+                                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  merchantItemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  merchantItemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                                            {
+                                                Console.WriteLine("                                        FixedShippingCharge");
+                                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                                if (fixedShippingCharge.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.Amount);
+                                                }
+                                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.CurrencyCode);
+                                                }
+                                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GemType);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarAttribute);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickThickness);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HardDiskCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasAutoFocus);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasBurstMode);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasInCameraEditing);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasSelfTimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasTripodMount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasVideoOut);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasViewfinder);
+                                            }
+                                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HazardousMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HoursOfOperation);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludedSoftware);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludesMp3Player);
+                                            }
+                                            if (merchantItemAttributes.IsSetIndications()) 
+                                            {
+                                                Console.WriteLine("                                        Indications");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Indications);
+                                            }
+                                            if (merchantItemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Ingredients);
+                                            }
+                                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.InstrumentKey);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsAutographed);
+                                            }
+                                            if (merchantItemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ISBN);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsFragile);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsLabCreated);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsMemorabilia);
+                                            }
+                                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                                            } 
+                                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IssuesPerYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.KeyboardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Label);
+                                            }
+                                            if (merchantItemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = merchantItemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LegalDisclaimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LineVoltage);
+                                            }
+                                            if (merchantItemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MacroFocusRange);
+                                            }
+                                            if (merchantItemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MagazineType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MalletHardness);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Manufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumColorDepth);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalStamp);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MiniMovieDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Model);
+                                            }
+                                            if (merchantItemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModelYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModemDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MouseDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MPN);
+                                            }
+                                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MusicalStyle);
+                                            }
+                                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NativeResolution);
+                                            }
+                                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Neighborhood);
+                                            }
+                                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfDiscs);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfIssues);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfItems);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfKeys);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPages);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPearls);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStones);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStrings);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfTracks);
+                                            }
+                                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                                            } 
+                                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OutputWattage);
+                                            }
+                                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlLustre);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlMinimumColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlStringingMethod);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlType);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlUniformity);
+                                            }
+                                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  merchantItemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (merchantItemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PriceRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProcessorCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProductGroup);
+                                            }
+                                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PromotionalTag);
+                                            }
+                                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PublicationDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Publisher);
+                                            }
+                                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                                            foreach (String purchasingChannel in purchasingChannelList) 
+                                            { 
+                                                Console.WriteLine("                                        PurchasingChannel");
+                                                Console.WriteLine("                                            {0}", purchasingChannel);
+                                            }	
+                                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReadingLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RecorderTrackCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionCode);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReleaseDate);
+                                            }
+                                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RemovableMemory);
+                                            }
+                                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ResolutionModes);
+                                            }
+                                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReturnPolicy);
+                                            }
+                                            if (merchantItemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                                            {
+                                                Console.WriteLine("                                        SafetyWarning");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SafetyWarning);
+                                            }
+                                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                                            {
+                                                Console.WriteLine("                                        SalesRestriction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SalesRestriction);
+                                            }
+                                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SettingType);
+                                            }
+                                            if (merchantItemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Size);
+                                            }
+                                            if (merchantItemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SKU);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoldInStores);
+                                            }
+                                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SizePerPearl);
+                                            }
+                                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SkillLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoundCardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneClarity);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneCut);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Studio);
+                                            }
+                                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SystemMemoryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TellingPageIndicator);
+                                            }
+                                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Title);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalParallelPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSerialPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSBPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.UPC);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDenomination);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                                            {
+                                                Console.WriteLine("                                        VendorRebate");
+                                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                                if (vendorRebate.IsSetType()) 
+                                                {
+                                                    Console.WriteLine("                                            Type");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.Type);
+                                                }
+                                                if (vendorRebate.IsSetStartDate()) 
+                                                {
+                                                    Console.WriteLine("                                            StartDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.StartDate);
+                                                }
+                                                if (vendorRebate.IsSetEndDate()) 
+                                                {
+                                                    Console.WriteLine("                                            EndDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.EndDate);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Warranty);
+                                            }
+                                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WatchMovementType);
+                                            }
+                                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                                            {
+                                                Console.WriteLine("                                        WebsiteBuyability");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WebsiteBuyability);
+                                            }
+                                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetCollections()) 
+                                        {
+                                            Console.WriteLine("                                    Collections");
+                                            Collections  collections = item.Collections;
+                                            List<CollectionsCollection> collectionList = collections.Collection;
+                                            foreach (CollectionsCollection collection in collectionList) 
+                                            {
+                                                Console.WriteLine("                                        Collection");
+                                                if (collection.IsSetCollectionSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionSummary");
+                                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestListPrice");
+                                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                                        if (lowestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.Amount);
+                                                        }
+                                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.CurrencyCode);
+                                                        }
+                                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestListPrice");
+                                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                                        if (highestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.Amount);
+                                                        }
+                                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.CurrencyCode);
+                                                        }
+                                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestSalePrice");
+                                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                                        if (lowestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.Amount);
+                                                        }
+                                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestSalePrice");
+                                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                                        if (highestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.Amount);
+                                                        }
+                                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (collection.IsSetCollectionParent()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionParent");
+                                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                                    if (collectionParent.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.ASIN);
+                                                    }
+                                                    if (collectionParent.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.Title);
+                                                    }
+                                                } 
+                                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionItem");
+                                                    if (collectionItem.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.ASIN);
+                                                    }
+                                                    if (collectionItem.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.Title);
+                                                    }
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSubjects()) 
+                                        {
+                                            Console.WriteLine("                                    Subjects");
+                                            Subjects  subjects = item.Subjects;
+                                            List<String> subjectList  =  subjects.Subject;
+                                            foreach (String subject in subjectList) 
+                                            { 
+                                                Console.WriteLine("                                        Subject");
+                                                Console.WriteLine("                                            {0}", subject);
+                                            }	
+                                        } 
+                                        if (item.IsSetOfferSummary()) 
+                                        {
+                                            Console.WriteLine("                                    OfferSummary");
+                                            OfferSummary  offerSummary = item.OfferSummary;
+                                            if (offerSummary.IsSetLowestNewPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestNewPrice");
+                                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                                if (lowestNewPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.Amount);
+                                                }
+                                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.CurrencyCode);
+                                                }
+                                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestUsedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestUsedPrice");
+                                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                                if (lowestUsedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.Amount);
+                                                }
+                                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.CurrencyCode);
+                                                }
+                                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestCollectiblePrice");
+                                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.Amount);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestRefurbishedPrice");
+                                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.Amount);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetTotalNew()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNew");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalNew);
+                                            }
+                                            if (offerSummary.IsSetTotalUsed()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUsed");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalUsed);
+                                            }
+                                            if (offerSummary.IsSetTotalCollectible()) 
+                                            {
+                                                Console.WriteLine("                                        TotalCollectible");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalCollectible);
+                                            }
+                                            if (offerSummary.IsSetTotalRefurbished()) 
+                                            {
+                                                Console.WriteLine("                                        TotalRefurbished");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalRefurbished);
+                                            }
+                                        } 
+                                        if (item.IsSetOffers()) 
+                                        {
+                                            Console.WriteLine("                                    Offers");
+                                            Offers  offers = item.Offers;
+                                            if (offers.IsSetTotalOffers()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOffers");
+                                                Console.WriteLine("                                            {0}", offers.TotalOffers);
+                                            }
+                                            if (offers.IsSetTotalOfferPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOfferPages");
+                                                Console.WriteLine("                                            {0}", offers.TotalOfferPages);
+                                            }
+                                            List<Offer> offerList = offers.Offer;
+                                            foreach (Offer offer in offerList) 
+                                            {
+                                                Console.WriteLine("                                        Offer");
+                                                if (offer.IsSetMerchant()) 
+                                                {
+                                                    Console.WriteLine("                                            Merchant");
+                                                    Merchant  merchant = offer.Merchant;
+                                                    if (merchant.IsSetMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantId");
+                                                        Console.WriteLine("                                                    {0}", merchant.MerchantId);
+                                                    }
+                                                    if (merchant.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", merchant.Name);
+                                                    }
+                                                    if (merchant.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", merchant.GlancePage);
+                                                    }
+                                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", merchant.AverageFeedbackRating);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedback);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedbackPages);
+                                                    }
+                                                } 
+                                                if (offer.IsSetSeller()) 
+                                                {
+                                                    Console.WriteLine("                                            Seller");
+                                                    Seller  seller = offer.Seller;
+                                                    if (seller.IsSetSellerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerId");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerId);
+                                                    }
+                                                    if (seller.IsSetSellerName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerName);
+                                                    }
+                                                    if (seller.IsSetSellerLegalName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerLegalName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerLegalName);
+                                                    }
+                                                    if (seller.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", seller.Nickname);
+                                                    }
+                                                    if (seller.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", seller.GlancePage);
+                                                    }
+                                                    if (seller.IsSetAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                About");
+                                                        Console.WriteLine("                                                    {0}", seller.About);
+                                                    }
+                                                    if (seller.IsSetMoreAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                MoreAbout");
+                                                        Console.WriteLine("                                                    {0}", seller.MoreAbout);
+                                                    }
+                                                    if (seller.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        SellerLocation  location = seller.Location;
+                                                        if (location.IsSetUserDefinedLocation()) 
+                                                        {
+                                                            Console.WriteLine("                                                    UserDefinedLocation");
+                                                            Console.WriteLine("                                                        {0}", location.UserDefinedLocation);
+                                                        }
+                                                        if (location.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", location.City);
+                                                        }
+                                                        if (location.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", location.State);
+                                                        }
+                                                        if (location.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", location.Country);
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", seller.AverageFeedbackRating);
+                                                    }
+                                                    if (seller.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedback);
+                                                    }
+                                                    if (seller.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedbackPages);
+                                                    }
+                                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedbackSummary");
+                                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                                        {
+                                                            Console.WriteLine("                                                    FeedbackDateRange");
+                                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                                            {
+                                                                Console.WriteLine("                                                        SellerFeedbackRating");
+                                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Count");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Count);
+                                                                }
+                                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Percentage");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Percentage);
+                                                                }
+                                                            }
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetSellerFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedback");
+                                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                                        foreach (Feedback feedback in feedbackList) 
+                                                        {
+                                                            Console.WriteLine("                                                    Feedback");
+                                                            if (feedback.IsSetRating()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Rating");
+                                                                Console.WriteLine("                                                            {0}", feedback.Rating);
+                                                            }
+                                                            if (feedback.IsSetComment()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Comment");
+                                                                Console.WriteLine("                                                            {0}", feedback.Comment);
+                                                            }
+                                                            if (feedback.IsSetDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Date");
+                                                                Console.WriteLine("                                                            {0}", feedback.Date);
+                                                            }
+                                                            if (feedback.IsSetRatedBy()) 
+                                                            {
+                                                                Console.WriteLine("                                                        RatedBy");
+                                                                Console.WriteLine("                                                            {0}", feedback.RatedBy);
+                                                            }
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetOfferAttributes()) 
+                                                {
+                                                    Console.WriteLine("                                            OfferAttributes");
+                                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                                    if (offerAttributes.IsSetCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                Condition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.Condition);
+                                                    }
+                                                    if (offerAttributes.IsSetSubCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                SubCondition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.SubCondition);
+                                                    }
+                                                    if (offerAttributes.IsSetConditionNote()) 
+                                                    {
+                                                        Console.WriteLine("                                                ConditionNote");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.ConditionNote);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipExpedited");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipExpedited);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipInternational");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipInternational);
+                                                    }
+                                                } 
+                                                List<OfferListing> offerListingList = offer.OfferListing;
+                                                foreach (OfferListing offerListing in offerListingList) 
+                                                {
+                                                    Console.WriteLine("                                            OfferListing");
+                                                    if (offerListing.IsSetOfferListingId()) 
+                                                    {
+                                                        Console.WriteLine("                                                OfferListingId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.OfferListingId);
+                                                    }
+                                                    if (offerListing.IsSetExchangeId()) 
+                                                    {
+                                                        Console.WriteLine("                                                ExchangeId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ExchangeId);
+                                                    }
+                                                    if (offerListing.IsSetPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                Price");
+                                                        Price  price = offerListing.Price;
+                                                        if (price.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", price.Amount);
+                                                        }
+                                                        if (price.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", price.CurrencyCode);
+                                                        }
+                                                        if (price.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", price.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalePrice");
+                                                        Price  salePrice = offerListing.SalePrice;
+                                                        if (salePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", salePrice.Amount);
+                                                        }
+                                                        if (salePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", salePrice.CurrencyCode);
+                                                        }
+                                                        if (salePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", salePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetAmountSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                AmountSaved");
+                                                        Price  amountSaved = offerListing.AmountSaved;
+                                                        if (amountSaved.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.Amount);
+                                                        }
+                                                        if (amountSaved.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.CurrencyCode);
+                                                        }
+                                                        if (amountSaved.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetPercentageSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentageSaved");
+                                                        Console.WriteLine("                                                    {0}", offerListing.PercentageSaved);
+                                                    }
+                                                    if (offerListing.IsSetAvailability()) 
+                                                    {
+                                                        Console.WriteLine("                                                Availability");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Availability);
+                                                    }
+                                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                                    {
+                                                        Console.WriteLine("                                                AvailabilityAttributes");
+                                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    AvailabilityType");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.AvailabilityType);
+                                                        }
+                                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsPreorder");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.IsPreorder);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MinimumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MinimumHours);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MaximumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MaximumHours);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Quantity);
+                                                    }
+                                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreAddress");
+                                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                                        if (ISPUStoreAddress.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Name);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address1");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address1);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address2");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address2);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address3");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address3);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.City);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.State);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    PostalCode");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.PostalCode);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Country);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetISPUStoreHours()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreHours");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ISPUStoreHours);
+                                                    }
+                                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsEligibleForSuperSaverShipping");
+                                                        Console.WriteLine("                                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                                    }
+                                                    if (offerListing.IsSetSalesRestriction()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalesRestriction");
+                                                        Console.WriteLine("                                                    {0}", offerListing.SalesRestriction);
+                                                    }
+                                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                                    {
+                                                        Console.WriteLine("                                                ShippingCharge");
+                                                        if (shippingCharge.IsSetShippingType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingType");
+                                                            Console.WriteLine("                                                        {0}", shippingCharge.ShippingType);
+                                                        }
+                                                        if (shippingCharge.IsSetShippingPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingPrice");
+                                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                                            if (shippingPrice.IsSetAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Amount");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.Amount);
+                                                            }
+                                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CurrencyCode");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.CurrencyCode);
+                                                            }
+                                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                                            {
+                                                                Console.WriteLine("                                                        FormattedPrice");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.FormattedPrice);
+                                                            }
+                                                        } 
+                                                    }
+                                                }
+                                                if (offer.IsSetLoyaltyPoints()) 
+                                                {
+                                                    Console.WriteLine("                                            LoyaltyPoints");
+                                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                                    if (loyaltyPoints.IsSetPoints()) 
+                                                    {
+                                                        Console.WriteLine("                                                Points");
+                                                        Console.WriteLine("                                                    {0}", loyaltyPoints.Points);
+                                                    }
+                                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                                    {
+                                                        Console.WriteLine("                                                TypicalRedemptionValue");
+                                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.Amount);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetPromotions()) 
+                                                {
+                                                    Console.WriteLine("                                            Promotions");
+                                                    Promotions  promotions = offer.Promotions;
+                                                    List<Promotion> promotionList = promotions.Promotion;
+                                                    foreach (Promotion promotion in promotionList) 
+                                                    {
+                                                        Console.WriteLine("                                                Promotion");
+                                                        if (promotion.IsSetSummary()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Summary");
+                                                            PromotionSummary  summary = promotion.Summary;
+                                                            if (summary.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", summary.PromotionId);
+                                                            }
+                                                            if (summary.IsSetCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Category");
+                                                                Console.WriteLine("                                                            {0}", summary.Category);
+                                                            }
+                                                            if (summary.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", summary.StartDate);
+                                                            }
+                                                            if (summary.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", summary.EndDate);
+                                                            }
+                                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirementDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.EligibilityRequirementDescription);
+                                                            }
+                                                            if (summary.IsSetBenefitDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        BenefitDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.BenefitDescription);
+                                                            }
+                                                            if (summary.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", summary.TermsAndConditions);
+                                                            }
+                                                        } 
+                                                        if (promotion.IsSetDetails()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Details");
+                                                            PromotionDetails  details = promotion.Details;
+                                                            if (details.IsSetMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantId);
+                                                            }
+                                                            if (details.IsSetOwningMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        OwningMerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.OwningMerchantId);
+                                                            }
+                                                            if (details.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionId);
+                                                            }
+                                                            if (details.IsSetPromotionCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionCategory");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionCategory);
+                                                            }
+                                                            if (details.IsSetMerchantPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantPromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantPromotionId);
+                                                            }
+                                                            if (details.IsSetGroupClaimCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        GroupClaimCode");
+                                                                Console.WriteLine("                                                            {0}", details.GroupClaimCode);
+                                                            }
+                                                            if (details.IsSetCouponCombinationType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CouponCombinationType");
+                                                                Console.WriteLine("                                                            {0}", details.CouponCombinationType);
+                                                            }
+                                                            if (details.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", details.StartDate);
+                                                            }
+                                                            if (details.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", details.EndDate);
+                                                            }
+                                                            if (details.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", details.TermsAndConditions);
+                                                            }
+                                                            if (details.IsSetEligibilityRequirements()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirements");
+                                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            EligibilityRequirement");
+                                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                EligibilityRequirementType");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.Quantity);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                CurrencyAmount");
+                                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                                        if (currencyAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.Amount);
+                                                                        }
+                                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.CurrencyCode);
+                                                                        }
+                                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetBenefits()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Benefits");
+                                                                PromotionBenefits  benefits = details.Benefits;
+                                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Benefit");
+                                                                    if (benefit.IsSetBenefitType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                BenefitType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.BenefitType);
+                                                                    }
+                                                                    if (benefit.IsSetComponentType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                ComponentType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.ComponentType);
+                                                                    }
+                                                                    if (benefit.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.Quantity);
+                                                                    }
+                                                                    if (benefit.IsSetPercentOff()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                PercentOff");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.PercentOff);
+                                                                    }
+                                                                    if (benefit.IsSetFixedAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                FixedAmount");
+                                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                                        if (fixedAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.Amount);
+                                                                        }
+                                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.CurrencyCode);
+                                                                        }
+                                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                    if (benefit.IsSetCeiling()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Ceiling");
+                                                                        Price  ceiling = benefit.Ceiling;
+                                                                        if (ceiling.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.Amount);
+                                                                        }
+                                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.CurrencyCode);
+                                                                        }
+                                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetItemApplicability()) 
+                                                            {
+                                                                Console.WriteLine("                                                        ItemApplicability");
+                                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                                if (itemApplicability.IsSetASIN()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            ASIN");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.ASIN);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInBenefitSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInBenefitSet);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInEligibilityRequirementSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                                }
+                                                            } 
+                                                            if (details.IsSetMerchandisingMessage()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchandisingMessage");
+                                                                Console.WriteLine("                                                            {0}", details.MerchandisingMessage);
+                                                            }
+                                                        } 
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetVariationSummary()) 
+                                        {
+                                            Console.WriteLine("                                    VariationSummary");
+                                            VariationSummary  variationSummary = item.VariationSummary;
+                                            if (variationSummary.IsSetLowestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestPrice");
+                                                Price  lowestPrice = variationSummary.LowestPrice;
+                                                if (lowestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.Amount);
+                                                }
+                                                if (lowestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.CurrencyCode);
+                                                }
+                                                if (lowestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestPrice");
+                                                Price  highestPrice = variationSummary.HighestPrice;
+                                                if (highestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestPrice.Amount);
+                                                }
+                                                if (highestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestPrice.CurrencyCode);
+                                                }
+                                                if (highestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetLowestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestSalePrice");
+                                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                                if (lowestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.Amount);
+                                                }
+                                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.CurrencyCode);
+                                                }
+                                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestSalePrice");
+                                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                                if (highestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.Amount);
+                                                }
+                                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.CurrencyCode);
+                                                }
+                                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetSingleMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        SingleMerchantId");
+                                                Console.WriteLine("                                            {0}", variationSummary.SingleMerchantId);
+                                            }
+                                        } 
+                                        if (item.IsSetVariations()) 
+                                        {
+                                            Console.WriteLine("                                    Variations");
+                                            Variations  variations = item.Variations;
+                                            if (variations.IsSetTotalVariations()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariations");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariations);
+                                            }
+                                            if (variations.IsSetTotalVariationPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariationPages");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariationPages);
+                                            }
+                                            if (variations.IsSetVariationDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDimensions");
+                                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                                foreach (String variationDimension in variationDimensionList) 
+                                                { 
+                                                    Console.WriteLine("                                            VariationDimension");
+                                                    Console.WriteLine("                                                {0}", variationDimension);
+                                                }	
+                                            } 
+                                        } 
+                                        if (item.IsSetCustomerReviews()) 
+                                        {
+                                            Console.WriteLine("                                    CustomerReviews");
+                                            CustomerReviews  customerReviews = item.CustomerReviews;
+                                            if (customerReviews.IsSetAverageRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageRating");
+                                                Console.WriteLine("                                            {0}", customerReviews.AverageRating);
+                                            }
+                                            if (customerReviews.IsSetTotalReviews()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviews");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviews);
+                                            }
+                                            if (customerReviews.IsSetTotalReviewPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviewPages");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviewPages);
+                                            }
+                                            List<Review> reviewList = customerReviews.Review;
+                                            foreach (Review review in reviewList) 
+                                            {
+                                                Console.WriteLine("                                        Review");
+                                                if (review.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", review.ASIN);
+                                                }
+                                                if (review.IsSetRating()) 
+                                                {
+                                                    Console.WriteLine("                                            Rating");
+                                                    Console.WriteLine("                                                {0}", review.Rating);
+                                                }
+                                                if (review.IsSetHelpfulVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            HelpfulVotes");
+                                                    Console.WriteLine("                                                {0}", review.HelpfulVotes);
+                                                }
+                                                if (review.IsSetCustomerId()) 
+                                                {
+                                                    Console.WriteLine("                                            CustomerId");
+                                                    Console.WriteLine("                                                {0}", review.CustomerId);
+                                                }
+                                                if (review.IsSetReviewer()) 
+                                                {
+                                                    Console.WriteLine("                                            Reviewer");
+                                                    Reviewer  reviewer = review.Reviewer;
+                                                    if (reviewer.IsSetCustomerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                CustomerId");
+                                                        Console.WriteLine("                                                    {0}", reviewer.CustomerId);
+                                                    }
+                                                    if (reviewer.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Name);
+                                                    }
+                                                    if (reviewer.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Nickname);
+                                                    }
+                                                    if (reviewer.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Location);
+                                                    }
+                                                } 
+                                                if (review.IsSetTotalVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            TotalVotes");
+                                                    Console.WriteLine("                                                {0}", review.TotalVotes);
+                                                }
+                                                if (review.IsSetDate()) 
+                                                {
+                                                    Console.WriteLine("                                            Date");
+                                                    Console.WriteLine("                                                {0}", review.Date);
+                                                }
+                                                if (review.IsSetSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            Summary");
+                                                    Console.WriteLine("                                                {0}", review.Summary);
+                                                }
+                                                if (review.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", review.Content);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetEditorialReviews()) 
+                                        {
+                                            Console.WriteLine("                                    EditorialReviews");
+                                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                                            {
+                                                Console.WriteLine("                                        EditorialReview");
+                                                if (editorialReview.IsSetSource()) 
+                                                {
+                                                    Console.WriteLine("                                            Source");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Source);
+                                                }
+                                                if (editorialReview.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Content);
+                                                }
+                                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                                {
+                                                    Console.WriteLine("                                            IsLinkSuppressed");
+                                                    Console.WriteLine("                                                {0}", editorialReview.IsLinkSuppressed);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSimilarProducts()) 
+                                        {
+                                            Console.WriteLine("                                    SimilarProducts");
+                                            SimilarProducts  similarProducts = item.SimilarProducts;
+                                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                                            foreach (SimilarProduct similarProduct in similarProductList) 
+                                            {
+                                                Console.WriteLine("                                        SimilarProduct");
+                                                if (similarProduct.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", similarProduct.ASIN);
+                                                }
+                                                if (similarProduct.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", similarProduct.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetAccessories()) 
+                                        {
+                                            Console.WriteLine("                                    Accessories");
+                                            Accessories  accessories = item.Accessories;
+                                            List<Accessory> accessoryList = accessories.Accessory;
+                                            foreach (Accessory accessory in accessoryList) 
+                                            {
+                                                Console.WriteLine("                                        Accessory");
+                                                if (accessory.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", accessory.ASIN);
+                                                }
+                                                if (accessory.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", accessory.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetTracks()) 
+                                        {
+                                            Console.WriteLine("                                    Tracks");
+                                            Tracks  tracks = item.Tracks;
+                                            List<Disc> discList = tracks.Disc;
+                                            foreach (Disc disc in discList) 
+                                            {
+                                                Console.WriteLine("                                        Disc");
+                                                List<Track> trackList = disc.Track;
+                                                foreach (Track track in trackList) 
+                                                {
+                                                    Console.WriteLine("                                            Track");
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetBrowseNodes()) 
+                                        {
+                                            Console.WriteLine("                                    BrowseNodes");
+                                            BrowseNodes  browseNodes = item.BrowseNodes;
+                                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                                            foreach (BrowseNode browseNode in browseNodeList) 
+                                            {
+                                                Console.WriteLine("                                        BrowseNode");
+                                                if (browseNode.IsSetBrowseNodeId()) 
+                                                {
+                                                    Console.WriteLine("                                            BrowseNodeId");
+                                                    Console.WriteLine("                                                {0}", browseNode.BrowseNodeId);
+                                                }
+                                                if (browseNode.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", browseNode.Name);
+                                                }
+                                                if (browseNode.IsSetIsCategoryRoot()) 
+                                                {
+                                                    Console.WriteLine("                                            IsCategoryRoot");
+                                                    Console.WriteLine("                                                {0}", browseNode.IsCategoryRoot);
+                                                }
+                                                if (browseNode.IsSetProperties()) 
+                                                {
+                                                    Console.WriteLine("                                            Properties");
+                                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                                    List<Property> propertyList = properties.Property;
+                                                    foreach (Property property in propertyList) 
+                                                    {
+                                                        Console.WriteLine("                                                Property");
+                                                        if (property.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", property.Name);
+                                                        }
+                                                        if (property.IsSetValue()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Value");
+                                                            Console.WriteLine("                                                        {0}", property.Value);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetChildren()) 
+                                                {
+                                                    Console.WriteLine("                                            Children");
+                                                    BrowseNodeChildren  children = browseNode.Children;
+                                                } 
+                                                if (browseNode.IsSetAncestors()) 
+                                                {
+                                                    Console.WriteLine("                                            Ancestors");
+                                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                                } 
+                                                if (browseNode.IsSetTopSellers()) 
+                                                {
+                                                    Console.WriteLine("                                            TopSellers");
+                                                    TopSellers  topSellers = browseNode.TopSellers;
+                                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                                    foreach (TopSeller topSeller in topSellerList) 
+                                                    {
+                                                        Console.WriteLine("                                                TopSeller");
+                                                        if (topSeller.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", topSeller.ASIN);
+                                                        }
+                                                        if (topSeller.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", topSeller.Title);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetNewReleases()) 
+                                                {
+                                                    Console.WriteLine("                                            NewReleases");
+                                                    NewReleases  newReleases = browseNode.NewReleases;
+                                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                                    foreach (NewRelease newRelease in newReleaseList) 
+                                                    {
+                                                        Console.WriteLine("                                                NewRelease");
+                                                        if (newRelease.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", newRelease.ASIN);
+                                                        }
+                                                        if (newRelease.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", newRelease.Title);
+                                                        }
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetSearchInside()) 
+                                        {
+                                            Console.WriteLine("                                    SearchInside");
+                                            SearchInside  searchInside = item.SearchInside;
+                                            if (searchInside.IsSetTotalExcerpts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExcerpts");
+                                                Console.WriteLine("                                            {0}", searchInside.TotalExcerpts);
+                                            }
+                                            if (searchInside.IsSetExcerpt()) 
+                                            {
+                                                Console.WriteLine("                                        Excerpt");
+                                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                                if (excerpt.IsSetChecksum()) 
+                                                {
+                                                    Console.WriteLine("                                            Checksum");
+                                                    Console.WriteLine("                                                {0}", excerpt.Checksum);
+                                                }
+                                                if (excerpt.IsSetPageType()) 
+                                                {
+                                                    Console.WriteLine("                                            PageType");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageType);
+                                                }
+                                                if (excerpt.IsSetPageNumber()) 
+                                                {
+                                                    Console.WriteLine("                                            PageNumber");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageNumber);
+                                                }
+                                                if (excerpt.IsSetSequenceNumber()) 
+                                                {
+                                                    Console.WriteLine("                                            SequenceNumber");
+                                                    Console.WriteLine("                                                {0}", excerpt.SequenceNumber);
+                                                }
+                                                if (excerpt.IsSetText()) 
+                                                {
+                                                    Console.WriteLine("                                            Text");
+                                                    Console.WriteLine("                                                {0}", excerpt.Text);
+                                                }
+                                            } 
+                                        } 
+                                        if (item.IsSetListmaniaLists()) 
+                                        {
+                                            Console.WriteLine("                                    ListmaniaLists");
+                                            ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                                            List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                                            foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                                            {
+                                                Console.WriteLine("                                        ListmaniaList");
+                                                if (listmaniaList.IsSetListId()) 
+                                                {
+                                                    Console.WriteLine("                                            ListId");
+                                                    Console.WriteLine("                                                {0}", listmaniaList.ListId);
+                                                }
+                                            }
+                                        } 
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                            }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListSearchSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListSearchSample.cs
new file mode 100644
index 0000000..bb3de5a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/ListSearchSample.cs
@@ -0,0 +1,5104 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// List Search  Samples
+    /// </summary>
+    public class ListSearchSample
+    {
+    
+                                         
+        /// <summary>
+        /// 
+        /// <p/>
+        /// Given a customer name or Email address, the ListSearch operation
+        /// returns the associated list ID(s) but not the list items. To find those,
+        /// use the list ID returned by ListSearch with  ListLookup  .
+        /// <p/>
+        /// Specifying a full name or just a first or last name in the request typically
+        /// returns multiple lists belonging to different people. Using Email as the
+        /// identifier produces more filtered results.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>ListMinimum</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">ListSearch request</param>
+        public static void InvokeListSearch(AmazonECS service, params ListSearchRequest [] request) 
+        {
+            try 
+            {
+                ListSearchResponse response = service.ListSearch(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        ListSearchResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Lists> listsList = response.Lists;
+                foreach (Lists lists in listsList) 
+                {
+                    Console.WriteLine("            Lists");
+                    if (lists.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", lists.TotalResults);
+                    }
+                    if (lists.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", lists.TotalPages);
+                    }
+                    List<List> listList = lists.List;
+                    foreach (List list in listList) 
+                    {
+                        Console.WriteLine("                List");
+                        if (list.IsSetListId()) 
+                        {
+                            Console.WriteLine("                    ListId");
+                            Console.WriteLine("                        {0}", list.ListId);
+                        }
+                        if (list.IsSetListURL()) 
+                        {
+                            Console.WriteLine("                    ListURL");
+                            Console.WriteLine("                        {0}", list.ListURL);
+                        }
+                        if (list.IsSetRegistryNumber()) 
+                        {
+                            Console.WriteLine("                    RegistryNumber");
+                            Console.WriteLine("                        {0}", list.RegistryNumber);
+                        }
+                        if (list.IsSetListName()) 
+                        {
+                            Console.WriteLine("                    ListName");
+                            Console.WriteLine("                        {0}", list.ListName);
+                        }
+                        if (list.IsSetListType()) 
+                        {
+                            Console.WriteLine("                    ListType");
+                            Console.WriteLine("                        {0}", list.ListType);
+                        }
+                        if (list.IsSetTotalItems()) 
+                        {
+                            Console.WriteLine("                    TotalItems");
+                            Console.WriteLine("                        {0}", list.TotalItems);
+                        }
+                        if (list.IsSetTotalPages()) 
+                        {
+                            Console.WriteLine("                    TotalPages");
+                            Console.WriteLine("                        {0}", list.TotalPages);
+                        }
+                        if (list.IsSetDateCreated()) 
+                        {
+                            Console.WriteLine("                    DateCreated");
+                            Console.WriteLine("                        {0}", list.DateCreated);
+                        }
+                        if (list.IsSetOccasionDate()) 
+                        {
+                            Console.WriteLine("                    OccasionDate");
+                            Console.WriteLine("                        {0}", list.OccasionDate);
+                        }
+                        if (list.IsSetCustomerName()) 
+                        {
+                            Console.WriteLine("                    CustomerName");
+                            Console.WriteLine("                        {0}", list.CustomerName);
+                        }
+                        if (list.IsSetPartnerName()) 
+                        {
+                            Console.WriteLine("                    PartnerName");
+                            Console.WriteLine("                        {0}", list.PartnerName);
+                        }
+                        if (list.IsSetAdditionalName()) 
+                        {
+                            Console.WriteLine("                    AdditionalName");
+                            Console.WriteLine("                        {0}", list.AdditionalName);
+                        }
+                        if (list.IsSetComment()) 
+                        {
+                            Console.WriteLine("                    Comment");
+                            Console.WriteLine("                        {0}", list.Comment);
+                        }
+                        if (list.IsSetImage()) 
+                        {
+                            Console.WriteLine("                    Image");
+                            Image  image = list.Image;
+                            if (image.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", image.URL);
+                            }
+                            if (image.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = image.Height;
+                            } 
+                            if (image.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = image.Width;
+                            } 
+                            if (image.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", image.IsVerified);
+                            }
+                        } 
+                        if (list.IsSetAverageRating()) 
+                        {
+                            Console.WriteLine("                    AverageRating");
+                            Console.WriteLine("                        {0}", list.AverageRating);
+                        }
+                        if (list.IsSetTotalVotes()) 
+                        {
+                            Console.WriteLine("                    TotalVotes");
+                            Console.WriteLine("                        {0}", list.TotalVotes);
+                        }
+                        if (list.IsSetTotalTimesRead()) 
+                        {
+                            Console.WriteLine("                    TotalTimesRead");
+                            Console.WriteLine("                        {0}", list.TotalTimesRead);
+                        }
+                        if (list.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = list.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetItem()) 
+                                    {
+                                        Console.WriteLine("                                Item");
+                                        Item  item = taggedItems.Item;
+                                        if (item.IsSetAlternateVersions()) 
+                                        {
+                                            Console.WriteLine("                                    AlternateVersions");
+                                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                                            {
+                                                Console.WriteLine("                                        AlternateVersion");
+                                                if (alternateVersion.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.ASIN);
+                                                }
+                                                if (alternateVersion.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Title);
+                                                }
+                                                if (alternateVersion.IsSetBinding()) 
+                                                {
+                                                    Console.WriteLine("                                            Binding");
+                                                    Console.WriteLine("                                                {0}", alternateVersion.Binding);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", item.ASIN);
+                                        }
+                                        if (item.IsSetParentASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ParentASIN");
+                                            Console.WriteLine("                                        {0}", item.ParentASIN);
+                                        }
+                                        if (item.IsSetDetailPageURL()) 
+                                        {
+                                            Console.WriteLine("                                    DetailPageURL");
+                                            Console.WriteLine("                                        {0}", item.DetailPageURL);
+                                        }
+                                        if (item.IsSetSalesRank()) 
+                                        {
+                                            Console.WriteLine("                                    SalesRank");
+                                            Console.WriteLine("                                        {0}", item.SalesRank);
+                                        }
+                                        if (item.IsSetSmallImage()) 
+                                        {
+                                            Console.WriteLine("                                    SmallImage");
+                                            Image  smallImage = item.SmallImage;
+                                            if (smallImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", smallImage.URL);
+                                            }
+                                            if (smallImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = smallImage.Height;
+                                            } 
+                                            if (smallImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = smallImage.Width;
+                                            } 
+                                            if (smallImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", smallImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetMediumImage()) 
+                                        {
+                                            Console.WriteLine("                                    MediumImage");
+                                            Image  mediumImage = item.MediumImage;
+                                            if (mediumImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", mediumImage.URL);
+                                            }
+                                            if (mediumImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = mediumImage.Height;
+                                            } 
+                                            if (mediumImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = mediumImage.Width;
+                                            } 
+                                            if (mediumImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", mediumImage.IsVerified);
+                                            }
+                                        } 
+                                        if (item.IsSetLargeImage()) 
+                                        {
+                                            Console.WriteLine("                                    LargeImage");
+                                            Image  largeImage = item.LargeImage;
+                                            if (largeImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", largeImage.URL);
+                                            }
+                                            if (largeImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = largeImage.Height;
+                                            } 
+                                            if (largeImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = largeImage.Width;
+                                            } 
+                                            if (largeImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", largeImage.IsVerified);
+                                            }
+                                        } 
+                                        List<ImageSets> imageSetsList = item.ImageSets;
+                                        foreach (ImageSets imageSets in imageSetsList) 
+                                        {
+                                            Console.WriteLine("                                    ImageSets");
+                                            if (imageSets.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", imageSets.MerchantId);
+                                            }
+                                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                                            foreach (ImageSet imageSet in imageSetList) 
+                                            {
+                                                Console.WriteLine("                                        ImageSet");
+                                                if (imageSet.IsSetSwatchImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SwatchImage");
+                                                    Image  swatchImage = imageSet.SwatchImage;
+                                                    if (swatchImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.URL);
+                                                    }
+                                                    if (swatchImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = swatchImage.Height;
+                                                    } 
+                                                    if (swatchImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = swatchImage.Width;
+                                                    } 
+                                                    if (swatchImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", swatchImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetSmallImage()) 
+                                                {
+                                                    Console.WriteLine("                                            SmallImage");
+                                                    Image  smallImage = imageSet.SmallImage;
+                                                    if (smallImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", smallImage.URL);
+                                                    }
+                                                    if (smallImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = smallImage.Height;
+                                                    } 
+                                                    if (smallImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = smallImage.Width;
+                                                    } 
+                                                    if (smallImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", smallImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetThumbnailImage()) 
+                                                {
+                                                    Console.WriteLine("                                            ThumbnailImage");
+                                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                                    if (thumbnailImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.URL);
+                                                    }
+                                                    if (thumbnailImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                                    } 
+                                                    if (thumbnailImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                                    } 
+                                                    if (thumbnailImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", thumbnailImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetTinyImage()) 
+                                                {
+                                                    Console.WriteLine("                                            TinyImage");
+                                                    Image  tinyImage = imageSet.TinyImage;
+                                                    if (tinyImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.URL);
+                                                    }
+                                                    if (tinyImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = tinyImage.Height;
+                                                    } 
+                                                    if (tinyImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = tinyImage.Width;
+                                                    } 
+                                                    if (tinyImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", tinyImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetMediumImage()) 
+                                                {
+                                                    Console.WriteLine("                                            MediumImage");
+                                                    Image  mediumImage = imageSet.MediumImage;
+                                                    if (mediumImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.URL);
+                                                    }
+                                                    if (mediumImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = mediumImage.Height;
+                                                    } 
+                                                    if (mediumImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = mediumImage.Width;
+                                                    } 
+                                                    if (mediumImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", mediumImage.IsVerified);
+                                                    }
+                                                } 
+                                                if (imageSet.IsSetLargeImage()) 
+                                                {
+                                                    Console.WriteLine("                                            LargeImage");
+                                                    Image  largeImage = imageSet.LargeImage;
+                                                    if (largeImage.IsSetURL()) 
+                                                    {
+                                                        Console.WriteLine("                                                URL");
+                                                        Console.WriteLine("                                                    {0}", largeImage.URL);
+                                                    }
+                                                    if (largeImage.IsSetHeight()) 
+                                                    {
+                                                        Console.WriteLine("                                                Height");
+                                                        DecimalWithUnits  height = largeImage.Height;
+                                                    } 
+                                                    if (largeImage.IsSetWidth()) 
+                                                    {
+                                                        Console.WriteLine("                                                Width");
+                                                        DecimalWithUnits  width = largeImage.Width;
+                                                    } 
+                                                    if (largeImage.IsSetIsVerified()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsVerified");
+                                                        Console.WriteLine("                                                    {0}", largeImage.IsVerified);
+                                                    }
+                                                } 
+                                            }
+                                        }
+                                        if (item.IsSetItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    ItemAttributes");
+                                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                                            List<String> actorList  =  itemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (itemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = itemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            List<String> ageList  =  itemAttributes.Age;
+                                            foreach (String age in ageList) 
+                                            { 
+                                                Console.WriteLine("                                        Age");
+                                                Console.WriteLine("                                            {0}", age);
+                                            }	
+                                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AnalogVideoFormat");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AnalogVideoFormat);
+                                            }
+                                            if (itemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  itemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (itemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AspectRatio);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyInstructions);
+                                            }
+                                            if (itemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AssemblyRequired);
+                                            }
+                                            if (itemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  itemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (itemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BackFinding);
+                                            }
+                                            if (itemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BandMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesIncluded);
+                                            }
+                                            if (itemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteriesRequired);
+                                            }
+                                            if (itemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                                            } 
+                                            if (itemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryDescription);
+                                            }
+                                            if (itemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BatteryType);
+                                            }
+                                            if (itemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.BezelMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Binding);
+                                            }
+                                            if (itemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Brand);
+                                            }
+                                            if (itemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                                            } 
+                                            if (itemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                                            } 
+                                            if (itemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CaseType);
+                                            }
+                                            if (itemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CatalogNumber);
+                                            }
+                                            List<String> categoryList  =  itemAttributes.Category;
+                                            foreach (String category in categoryList) 
+                                            { 
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", category);
+                                            }	
+                                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                                            foreach (String categoryBin in categoryBinList) 
+                                            { 
+                                                Console.WriteLine("                                        CategoryBin");
+                                                Console.WriteLine("                                            {0}", categoryBin);
+                                            }	
+                                            if (itemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ChainType);
+                                            }
+                                            List<String> characterList  =  itemAttributes.Character;
+                                            foreach (String character in characterList) 
+                                            { 
+                                                Console.WriteLine("                                        Character");
+                                                Console.WriteLine("                                            {0}", character);
+                                            }	
+                                            if (itemAttributes.IsSetCEROAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        CEROAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CEROAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClaspType);
+                                            }
+                                            if (itemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClothingSize);
+                                            }
+                                            if (itemAttributes.IsSetClubType()) 
+                                            {
+                                                Console.WriteLine("                                        ClubType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ClubType);
+                                            }
+                                            if (itemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Color);
+                                            }
+                                            if (itemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Compatibility);
+                                            }
+                                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                                            foreach (String compatibleDevices in compatibleDevicesList) 
+                                            { 
+                                                Console.WriteLine("                                        CompatibleDevices");
+                                                Console.WriteLine("                                            {0}", compatibleDevices);
+                                            }	
+                                            if (itemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerHardwareType);
+                                            }
+                                            if (itemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ComputerPlatform);
+                                            }
+                                            if (itemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Connectivity);
+                                            }
+                                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Country);
+                                            }
+                                            if (itemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUManufacturer);
+                                            }
+                                            if (itemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = itemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (itemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Cuisine);
+                                            }
+                                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                                            { 
+                                                Console.WriteLine("                                        DataLinkProtocol");
+                                                Console.WriteLine("                                            {0}", dataLinkProtocol);
+                                            }	
+                                            if (itemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeliveryOption);
+                                            }
+                                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (itemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Department);
+                                            }
+                                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (itemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialColor);
+                                            }
+                                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  itemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                                            {
+                                                Console.WriteLine("                                        DisplayColorSupport");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DisplayColorSupport);
+                                            }
+                                            if (itemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                                            } 
+                                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (itemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDLayers);
+                                            }
+                                            if (itemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDRWDescription);
+                                            }
+                                            if (itemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DVDSides);
+                                            }
+                                            if (itemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", itemAttributes.DPCI);
+                                            }
+                                            if (itemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.EAN);
+                                            }
+                                            if (itemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Edition);
+                                            }
+                                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                                            foreach (String educationalFocus in educationalFocusList) 
+                                            { 
+                                                Console.WriteLine("                                        EducationalFocus");
+                                                Console.WriteLine("                                            {0}", educationalFocus);
+                                            }	
+                                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                                            foreach (String ethnicity in ethnicityList) 
+                                            { 
+                                                Console.WriteLine("                                        Ethnicity");
+                                                Console.WriteLine("                                            {0}", ethnicity);
+                                            }	
+                                            if (itemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ESRBAgeRating);
+                                            }
+                                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (itemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FabricType);
+                                            }
+                                            if (itemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  itemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (itemAttributes.IsSetFilmColorType()) 
+                                            {
+                                                Console.WriteLine("                                        FilmColorType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FilmColorType);
+                                            }
+                                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (itemAttributes.IsSetFlavorName()) 
+                                            {
+                                                Console.WriteLine("                                        FlavorName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FlavorName);
+                                            }
+                                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  itemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                                            foreach (String formFactor in formFactorList) 
+                                            { 
+                                                Console.WriteLine("                                        FormFactor");
+                                                Console.WriteLine("                                            {0}", formFactor);
+                                            }	
+                                            if (itemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GemType);
+                                            }
+                                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        GemTypeSetElement");
+                                                Console.WriteLine("                                            {0}", gemTypeSetElement);
+                                            }	
+                                            List<String> genderList  =  itemAttributes.Gender;
+                                            foreach (String gender in genderList) 
+                                            { 
+                                                Console.WriteLine("                                        Gender");
+                                                Console.WriteLine("                                            {0}", gender);
+                                            }	
+                                            if (itemAttributes.IsSetGenre()) 
+                                            {
+                                                Console.WriteLine("                                        Genre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Genre);
+                                            }
+                                            if (itemAttributes.IsSetGLProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        GLProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GLProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubFlex()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubFlex");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubFlex);
+                                            }
+                                            if (itemAttributes.IsSetGolfClubLoft()) 
+                                            {
+                                                Console.WriteLine("                                        GolfClubLoft");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GolfClubLoft);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GraphicsDescription);
+                                            }
+                                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarAttribute);
+                                            }
+                                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickThickness);
+                                            }
+                                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", itemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (itemAttributes.IsSetHandOrientation()) 
+                                            {
+                                                Console.WriteLine("                                        HandOrientation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HandOrientation);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskCount);
+                                            }
+                                            if (itemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                                            } 
+                                            if (itemAttributes.IsSetHardDiskInterface()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskInterface");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardDiskInterface);
+                                            }
+                                            if (itemAttributes.IsSetHardwarePlatform()) 
+                                            {
+                                                Console.WriteLine("                                        HardwarePlatform");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HardwarePlatform);
+                                            }
+                                            if (itemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasAutoFocus);
+                                            }
+                                            if (itemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasBurstMode);
+                                            }
+                                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasInCameraEditing);
+                                            }
+                                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (itemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasSelfTimer);
+                                            }
+                                            if (itemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasTripodMount);
+                                            }
+                                            if (itemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasVideoOut);
+                                            }
+                                            if (itemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HasViewfinder);
+                                            }
+                                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HazardousMaterialType);
+                                            }
+                                            if (itemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", itemAttributes.HoursOfOperation);
+                                            }
+                                            if (itemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludedSoftware);
+                                            }
+                                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IncludesMp3Player);
+                                            }
+                                            if (itemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Ingredients);
+                                            }
+                                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        IngredientsSetElement");
+                                                Console.WriteLine("                                            {0}", ingredientsSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", itemAttributes.InstrumentKey);
+                                            }
+                                            List<String> interestList  =  itemAttributes.Interest;
+                                            foreach (String interest in interestList) 
+                                            { 
+                                                Console.WriteLine("                                        Interest");
+                                                Console.WriteLine("                                            {0}", interest);
+                                            }	
+                                            if (itemAttributes.IsSetIsAdultProduct()) 
+                                            {
+                                                Console.WriteLine("                                        IsAdultProduct");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAdultProduct);
+                                            }
+                                            if (itemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsAutographed);
+                                            }
+                                            if (itemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ISBN);
+                                            }
+                                            if (itemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsFragile);
+                                            }
+                                            if (itemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsLabCreated);
+                                            }
+                                            if (itemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsMemorabilia);
+                                            }
+                                            if (itemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                                            } 
+                                            if (itemAttributes.IsSetIsPreannounce()) 
+                                            {
+                                                Console.WriteLine("                                        IsPreannounce");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IsPreannounce);
+                                            }
+                                            if (itemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.IssuesPerYear);
+                                            }
+                                            if (itemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.KeyboardDescription);
+                                            }
+                                            if (itemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Label);
+                                            }
+                                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                                            foreach (String languageName in languageNameList) 
+                                            { 
+                                                Console.WriteLine("                                        LanguageName");
+                                                Console.WriteLine("                                            {0}", languageName);
+                                            }	
+                                            if (itemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = itemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LegalDisclaimer);
+                                            }
+                                            if (itemAttributes.IsSetLensType()) 
+                                            {
+                                                Console.WriteLine("                                        LensType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LensType);
+                                            }
+                                            if (itemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.LineVoltage);
+                                            }
+                                            if (itemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = itemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MacroFocusRange);
+                                            }
+                                            if (itemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MagazineType);
+                                            }
+                                            if (itemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MalletHardness);
+                                            }
+                                            if (itemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Manufacturer);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (itemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaterialType);
+                                            }
+                                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                                            { 
+                                                Console.WriteLine("                                        MaterialTypeSetElement");
+                                                Console.WriteLine("                                            {0}", materialTypeSetElement);
+                                            }	
+                                            if (itemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumColorDepth);
+                                            }
+                                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (itemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (itemAttributes.IsSetMediaType()) 
+                                            {
+                                                Console.WriteLine("                                        MediaType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MediaType);
+                                            }
+                                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (itemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalStamp);
+                                            }
+                                            if (itemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MetalType);
+                                            }
+                                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MiniMovieDescription);
+                                            }
+                                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Model);
+                                            }
+                                            if (itemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModelYear);
+                                            }
+                                            if (itemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ModemDescription);
+                                            }
+                                            if (itemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                                            } 
+                                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (itemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MouseDescription);
+                                            }
+                                            if (itemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MPN);
+                                            }
+                                            if (itemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", itemAttributes.MusicalStyle);
+                                            }
+                                            if (itemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NativeResolution);
+                                            }
+                                            if (itemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Neighborhood);
+                                            }
+                                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfDiscs);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfIssues);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfItems);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfKeys);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPages);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfPearls);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStones);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfStrings);
+                                            }
+                                            if (itemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", itemAttributes.NumberOfTracks);
+                                            }
+                                            if (itemAttributes.IsSetOperatingSystem()) 
+                                            {
+                                                Console.WriteLine("                                        OperatingSystem");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OperatingSystem);
+                                            }
+                                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalSensorResolution");
+                                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                                            } 
+                                            if (itemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                                            } 
+                                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.OutputWattage);
+                                            }
+                                            if (itemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (itemAttributes.IsSetPackageQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        PackageQuantity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PackageQuantity);
+                                            }
+                                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                                            foreach (String pantLength in pantLengthList) 
+                                            { 
+                                                Console.WriteLine("                                        PantLength");
+                                                Console.WriteLine("                                            {0}", pantLength);
+                                            }	
+                                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                                            foreach (String pantSize in pantSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        PantSize");
+                                                Console.WriteLine("                                            {0}", pantSize);
+                                            }	
+                                            if (itemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlLustre);
+                                            }
+                                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlMinimumColor);
+                                            }
+                                            if (itemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlShape);
+                                            }
+                                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlStringingMethod);
+                                            }
+                                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (itemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlType);
+                                            }
+                                            if (itemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PearlUniformity);
+                                            }
+                                            if (itemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  itemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (itemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PriceRating);
+                                            }
+                                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                                            foreach (String primaryColor in primaryColorList) 
+                                            { 
+                                                Console.WriteLine("                                        PrimaryColor");
+                                                Console.WriteLine("                                            {0}", primaryColor);
+                                            }	
+                                            if (itemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProcessorCount);
+                                            }
+                                            if (itemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductGroup);
+                                            }
+                                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                                            {
+                                                Console.WriteLine("                                        ProductSiteLaunchDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductSiteLaunchDate);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeName()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeName);
+                                            }
+                                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                                            {
+                                                Console.WriteLine("                                        ProductTypeSubcategory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ProductTypeSubcategory);
+                                            }
+                                            if (itemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PromotionalTag);
+                                            }
+                                            if (itemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.PublicationDate);
+                                            }
+                                            if (itemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Publisher);
+                                            }
+                                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", itemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (itemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReadingLevel);
+                                            }
+                                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RecorderTrackCount);
+                                            }
+                                            if (itemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionCode);
+                                            }
+                                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RegionOfOrigin);
+                                            }
+                                            if (itemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReturnPolicy);
+                                            }
+                                            if (itemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableMemory);
+                                            }
+                                            if (itemAttributes.IsSetRemovableStorage()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableStorage");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RemovableStorage);
+                                            }
+                                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                                            {
+                                                Console.WriteLine("                                        RequiredVoltageRange");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RequiredVoltageRange);
+                                            }
+                                            if (itemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ResolutionModes);
+                                            }
+                                            if (itemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.RingSize);
+                                            }
+                                            if (itemAttributes.IsSetRunningTime()) 
+                                            {
+                                                Console.WriteLine("                                        RunningTime");
+                                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                                            } 
+                                            if (itemAttributes.IsSetScentName()) 
+                                            {
+                                                Console.WriteLine("                                        ScentName");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ScentName);
+                                            }
+                                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (itemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SettingType);
+                                            }
+                                            if (itemAttributes.IsSetShaftMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        ShaftMaterialType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.ShaftMaterialType);
+                                            }
+                                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                                            foreach (String shoeSize in shoeSizeList) 
+                                            { 
+                                                Console.WriteLine("                                        ShoeSize");
+                                                Console.WriteLine("                                            {0}", shoeSize);
+                                            }	
+                                            if (itemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Size);
+                                            }
+                                            if (itemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SizePerPearl);
+                                            }
+                                            if (itemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SkillLevel);
+                                            }
+                                            if (itemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SKU);
+                                            }
+                                            if (itemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoldInStores);
+                                            }
+                                            if (itemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SoundCardDescription);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerCount);
+                                            }
+                                            if (itemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (itemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneClarity);
+                                            }
+                                            if (itemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneColor);
+                                            }
+                                            if (itemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneCut);
+                                            }
+                                            if (itemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", itemAttributes.StoneShape);
+                                            }
+                                            if (itemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                                            } 
+                                            if (itemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Studio);
+                                            }
+                                            if (itemAttributes.IsSetStyle()) 
+                                            {
+                                                Console.WriteLine("                                        Style");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Style);
+                                            }
+                                            if (itemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                                            {
+                                                Console.WriteLine("                                        SupportedMediaSize");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SupportedMediaSize);
+                                            }
+                                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                                            } 
+                                            if (itemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.SystemMemoryType);
+                                            }
+                                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                                            foreach (String targetBrand in targetBrandList) 
+                                            { 
+                                                Console.WriteLine("                                        TargetBrand");
+                                                Console.WriteLine("                                            {0}", targetBrand);
+                                            }	
+                                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TellingPageIndicator);
+                                            }
+                                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (itemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Title);
+                                            }
+                                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalParallelPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSerialPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalUSBPorts);
+                                            }
+                                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", itemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (itemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", itemAttributes.UPC);
+                                            }
+                                            if (itemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDenomination);
+                                            }
+                                            if (itemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", itemAttributes.VariationDescription);
+                                            }
+                                            if (itemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", itemAttributes.Warranty);
+                                            }
+                                            if (itemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WatchMovementType);
+                                            }
+                                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (itemAttributes.IsSetWEEETaxValue()) 
+                                            {
+                                                Console.WriteLine("                                        WEEETaxValue");
+                                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                                if (WEEETaxValue.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.Amount);
+                                                }
+                                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.CurrencyCode);
+                                                }
+                                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", WEEETaxValue.FormattedPrice);
+                                                }
+                                            } 
+                                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetMerchantItemAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    MerchantItemAttributes");
+                                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                                            List<String> actorList  =  merchantItemAttributes.Actor;
+                                            foreach (String actor in actorList) 
+                                            { 
+                                                Console.WriteLine("                                        Actor");
+                                                Console.WriteLine("                                            {0}", actor);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAddress()) 
+                                            {
+                                                Console.WriteLine("                                        Address");
+                                                Address  address = merchantItemAttributes.Address;
+                                                if (address.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", address.Name);
+                                                }
+                                                if (address.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", address.Address1);
+                                                }
+                                                if (address.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", address.Address2);
+                                                }
+                                                if (address.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", address.Address3);
+                                                }
+                                                if (address.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", address.City);
+                                                }
+                                                if (address.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", address.State);
+                                                }
+                                                if (address.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", address.PostalCode);
+                                                }
+                                                if (address.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", address.Country);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMaximumAge");
+                                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        AmazonMinimumAge");
+                                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetApertureModes()) 
+                                            {
+                                                Console.WriteLine("                                        ApertureModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ApertureModes);
+                                            }
+                                            List<String> artistList  =  merchantItemAttributes.Artist;
+                                            foreach (String artist in artistList) 
+                                            { 
+                                                Console.WriteLine("                                        Artist");
+                                                Console.WriteLine("                                            {0}", artist);
+                                            }	
+                                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                                            {
+                                                Console.WriteLine("                                        AspectRatio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AspectRatio);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyInstructions");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyInstructions);
+                                            }
+                                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                                            {
+                                                Console.WriteLine("                                        AssemblyRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AssemblyRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                                            {
+                                                Console.WriteLine("                                        AudienceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.AudienceRating);
+                                            }
+                                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                                            foreach (String audioFormat in audioFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", audioFormat);
+                                            }	
+                                            List<String> authorList  =  merchantItemAttributes.Author;
+                                            foreach (String author in authorList) 
+                                            { 
+                                                Console.WriteLine("                                        Author");
+                                                Console.WriteLine("                                            {0}", author);
+                                            }	
+                                            if (merchantItemAttributes.IsSetBackFinding()) 
+                                            {
+                                                Console.WriteLine("                                        BackFinding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BackFinding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BandMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BandMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesIncluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesIncluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                                            {
+                                                Console.WriteLine("                                        BatteriesRequired");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteriesRequired);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteries()) 
+                                            {
+                                                Console.WriteLine("                                        Batteries");
+                                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                                            } 
+                                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetBatteryType()) 
+                                            {
+                                                Console.WriteLine("                                        BatteryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BatteryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        BezelMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.BezelMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetBinding()) 
+                                            {
+                                                Console.WriteLine("                                        Binding");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Binding);
+                                            }
+                                            if (merchantItemAttributes.IsSetBrand()) 
+                                            {
+                                                Console.WriteLine("                                        Brand");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Brand);
+                                            }
+                                            if (merchantItemAttributes.IsSetCalendarType()) 
+                                            {
+                                                Console.WriteLine("                                        CalendarType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CalendarType);
+                                            }
+                                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        CameraManualFeatures");
+                                                Console.WriteLine("                                            {0}", cameraManualFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                                            {
+                                                Console.WriteLine("                                        CaseDiameter");
+                                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                                            {
+                                                Console.WriteLine("                                        CaseThickness");
+                                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCaseType()) 
+                                            {
+                                                Console.WriteLine("                                        CaseType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CaseType);
+                                            }
+                                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                                            {
+                                                Console.WriteLine("                                        CatalogNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CatalogNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        CDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetChainType()) 
+                                            {
+                                                Console.WriteLine("                                        ChainType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ChainType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClaspType()) 
+                                            {
+                                                Console.WriteLine("                                        ClaspType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClaspType);
+                                            }
+                                            if (merchantItemAttributes.IsSetClothingSize()) 
+                                            {
+                                                Console.WriteLine("                                        ClothingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ClothingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetColor()) 
+                                            {
+                                                Console.WriteLine("                                        Color");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Color);
+                                            }
+                                            if (merchantItemAttributes.IsSetCompatibility()) 
+                                            {
+                                                Console.WriteLine("                                        Compatibility");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Compatibility);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerHardwareType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerHardwareType);
+                                            }
+                                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                                            {
+                                                Console.WriteLine("                                        ComputerPlatform");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ComputerPlatform);
+                                            }
+                                            if (merchantItemAttributes.IsSetConnectivity()) 
+                                            {
+                                                Console.WriteLine("                                        Connectivity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Connectivity);
+                                            }
+                                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        ContinuousShootingSpeed");
+                                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCountry()) 
+                                            {
+                                                Console.WriteLine("                                        Country");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Country);
+                                            }
+                                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        CountryOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CountryOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        CPUManufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUManufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        CPUSpeed");
+                                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetCPUType()) 
+                                            {
+                                                Console.WriteLine("                                        CPUType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.CPUType);
+                                            }
+                                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                                            foreach (Creator creator in creatorList) 
+                                            {
+                                                Console.WriteLine("                                        Creator");
+                                            }
+                                            if (merchantItemAttributes.IsSetCuisine()) 
+                                            {
+                                                Console.WriteLine("                                        Cuisine");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Cuisine);
+                                            }
+                                            if (merchantItemAttributes.IsSetCustomizable()) 
+                                            {
+                                                Console.WriteLine("                                        Customizable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Customizable);
+                                            }
+                                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                                            {
+                                                Console.WriteLine("                                        DelayBetweenShots");
+                                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                                            {
+                                                Console.WriteLine("                                        DeliveryOption");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeliveryOption);
+                                            }
+                                            if (merchantItemAttributes.IsSetDepartment()) 
+                                            {
+                                                Console.WriteLine("                                        Department");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Department);
+                                            }
+                                            if (merchantItemAttributes.IsSetDescription()) 
+                                            {
+                                                Console.WriteLine("                                        Description");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Description);
+                                            }
+                                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                                            {
+                                                Console.WriteLine("                                        DeweyDecimalNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialColor()) 
+                                            {
+                                                Console.WriteLine("                                        DialColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        DialWindowMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        DigitalZoom");
+                                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                                            } 
+                                            List<String> directorList  =  merchantItemAttributes.Director;
+                                            foreach (String director in directorList) 
+                                            { 
+                                                Console.WriteLine("                                        Director");
+                                                Console.WriteLine("                                            {0}", director);
+                                            }	
+                                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                                            {
+                                                Console.WriteLine("                                        DisplaySize");
+                                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        DrumSetPieceQuantity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                                            {
+                                                Console.WriteLine("                                        DVDLayers");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDLayers);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                                            {
+                                                Console.WriteLine("                                        DVDRWDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDRWDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetDVDSides()) 
+                                            {
+                                                Console.WriteLine("                                        DVDSides");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DVDSides);
+                                            }
+                                            if (merchantItemAttributes.IsSetDPCI()) 
+                                            {
+                                                Console.WriteLine("                                        DPCI");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.DPCI);
+                                            }
+                                            if (merchantItemAttributes.IsSetEAN()) 
+                                            {
+                                                Console.WriteLine("                                        EAN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.EAN);
+                                            }
+                                            if (merchantItemAttributes.IsSetEdition()) 
+                                            {
+                                                Console.WriteLine("                                        Edition");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Edition);
+                                            }
+                                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                                            {
+                                                Console.WriteLine("                                        ESRBAgeRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ESRBAgeRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ExternalDisplaySupportDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetFabricType()) 
+                                            {
+                                                Console.WriteLine("                                        FabricType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FabricType);
+                                            }
+                                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                                            {
+                                                Console.WriteLine("                                        FaxNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FaxNumber);
+                                            }
+                                            List<String> featureList  =  merchantItemAttributes.Feature;
+                                            foreach (String feature in featureList) 
+                                            { 
+                                                Console.WriteLine("                                        Feature");
+                                                Console.WriteLine("                                            {0}", feature);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                                            {
+                                                Console.WriteLine("                                        FirstIssueLeadTime");
+                                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                                            } 
+                                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                            {
+                                                Console.WriteLine("                                        FloppyDiskDriveDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                                            }
+                                            List<String> formatList  =  merchantItemAttributes.Format;
+                                            foreach (String format in formatList) 
+                                            { 
+                                                Console.WriteLine("                                        Format");
+                                                Console.WriteLine("                                            {0}", format);
+                                            }	
+                                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                                            {
+                                                Console.WriteLine("                                        FixedShippingCharge");
+                                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                                if (fixedShippingCharge.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.Amount);
+                                                }
+                                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.CurrencyCode);
+                                                }
+                                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", fixedShippingCharge.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetGemType()) 
+                                            {
+                                                Console.WriteLine("                                        GemType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GemType);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsCardInterface");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GraphicsDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        GraphicsMemorySize");
+                                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarAttribute");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarAttribute);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarBridgeSystem");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickThickness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickThickness);
+                                            }
+                                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                                            {
+                                                Console.WriteLine("                                        GuitarPickupConfiguration");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HardDiskCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                                            {
+                                                Console.WriteLine("                                        HardDiskSize");
+                                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                                            {
+                                                Console.WriteLine("                                        HasAutoFocus");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasAutoFocus);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                                            {
+                                                Console.WriteLine("                                        HasBurstMode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasBurstMode);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                                            {
+                                                Console.WriteLine("                                        HasInCameraEditing");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasInCameraEditing);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                                            {
+                                                Console.WriteLine("                                        HasRedEyeReduction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                                            {
+                                                Console.WriteLine("                                        HasSelfTimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasSelfTimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                                            {
+                                                Console.WriteLine("                                        HasTripodMount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasTripodMount);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                                            {
+                                                Console.WriteLine("                                        HasVideoOut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasVideoOut);
+                                            }
+                                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                                            {
+                                                Console.WriteLine("                                        HasViewfinder");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HasViewfinder);
+                                            }
+                                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        HazardousMaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HazardousMaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                                            {
+                                                Console.WriteLine("                                        HoursOfOperation");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.HoursOfOperation);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                                            {
+                                                Console.WriteLine("                                        IncludedSoftware");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludedSoftware);
+                                            }
+                                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                                            {
+                                                Console.WriteLine("                                        IncludesMp3Player");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IncludesMp3Player);
+                                            }
+                                            if (merchantItemAttributes.IsSetIndications()) 
+                                            {
+                                                Console.WriteLine("                                        Indications");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Indications);
+                                            }
+                                            if (merchantItemAttributes.IsSetIngredients()) 
+                                            {
+                                                Console.WriteLine("                                        Ingredients");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Ingredients);
+                                            }
+                                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                                            {
+                                                Console.WriteLine("                                        InstrumentKey");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.InstrumentKey);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                                            {
+                                                Console.WriteLine("                                        IsAutographed");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsAutographed);
+                                            }
+                                            if (merchantItemAttributes.IsSetISBN()) 
+                                            {
+                                                Console.WriteLine("                                        ISBN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ISBN);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsFragile()) 
+                                            {
+                                                Console.WriteLine("                                        IsFragile");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsFragile);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                                            {
+                                                Console.WriteLine("                                        IsLabCreated");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsLabCreated);
+                                            }
+                                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                                            {
+                                                Console.WriteLine("                                        IsMemorabilia");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IsMemorabilia);
+                                            }
+                                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                                            {
+                                                Console.WriteLine("                                        ISOEquivalent");
+                                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                                            } 
+                                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                                            {
+                                                Console.WriteLine("                                        IssuesPerYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.IssuesPerYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        ItemDimensions");
+                                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                                if (itemDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = itemDimensions.Height;
+                                                } 
+                                                if (itemDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = itemDimensions.Length;
+                                                } 
+                                                if (itemDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                                } 
+                                                if (itemDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = itemDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        KeyboardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.KeyboardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetLabel()) 
+                                            {
+                                                Console.WriteLine("                                        Label");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Label);
+                                            }
+                                            if (merchantItemAttributes.IsSetLanguages()) 
+                                            {
+                                                Console.WriteLine("                                        Languages");
+                                                Languages  languages = merchantItemAttributes.Languages;
+                                                List<Language> languageList = languages.Language;
+                                                foreach (Language language in languageList) 
+                                                {
+                                                    Console.WriteLine("                                            Language");
+                                                    if (language.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", language.Name);
+                                                    }
+                                                    if (language.IsSetType()) 
+                                                    {
+                                                        Console.WriteLine("                                                Type");
+                                                        Console.WriteLine("                                                    {0}", language.Type);
+                                                    }
+                                                    if (language.IsSetAudioFormat()) 
+                                                    {
+                                                        Console.WriteLine("                                                AudioFormat");
+                                                        Console.WriteLine("                                                    {0}", language.AudioFormat);
+                                                    }
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                                            {
+                                                Console.WriteLine("                                        LegalDisclaimer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LegalDisclaimer);
+                                            }
+                                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                                            {
+                                                Console.WriteLine("                                        LineVoltage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.LineVoltage);
+                                            }
+                                            if (merchantItemAttributes.IsSetListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        ListPrice");
+                                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                                if (listPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", listPrice.Amount);
+                                                }
+                                                if (listPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", listPrice.CurrencyCode);
+                                                }
+                                                if (listPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", listPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                                            {
+                                                Console.WriteLine("                                        MacroFocusRange");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MacroFocusRange);
+                                            }
+                                            if (merchantItemAttributes.IsSetMagazineType()) 
+                                            {
+                                                Console.WriteLine("                                        MagazineType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MagazineType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                                            {
+                                                Console.WriteLine("                                        MalletHardness");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MalletHardness);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturer()) 
+                                            {
+                                                Console.WriteLine("                                        Manufacturer");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Manufacturer);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerLaborWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMaximumAge");
+                                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerMinimumAge");
+                                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                                            } 
+                                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ManufacturerPartsWarrantyDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaterialType()) 
+                                            {
+                                                Console.WriteLine("                                        MaterialType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaterialType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumAperture");
+                                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumColorDepth");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumColorDepth);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumFocalLength");
+                                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHighResolutionImages");
+                                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumHorizontalResolution");
+                                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumLowResolutionImages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                                            }
+                                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumResolution");
+                                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumShutterSpeed");
+                                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumVerticalResolution");
+                                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                                            {
+                                                Console.WriteLine("                                        MaximumWeightRecommendation");
+                                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                                            {
+                                                Console.WriteLine("                                        MemorySlotsAvailable");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                                            {
+                                                Console.WriteLine("                                        MetalStamp");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalStamp);
+                                            }
+                                            if (merchantItemAttributes.IsSetMetalType()) 
+                                            {
+                                                Console.WriteLine("                                        MetalType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MetalType);
+                                            }
+                                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MiniMovieDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MiniMovieDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumFocalLength");
+                                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        MinimumShutterSpeed");
+                                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetModel()) 
+                                            {
+                                                Console.WriteLine("                                        Model");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Model);
+                                            }
+                                            if (merchantItemAttributes.IsSetModelYear()) 
+                                            {
+                                                Console.WriteLine("                                        ModelYear");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModelYear);
+                                            }
+                                            if (merchantItemAttributes.IsSetModemDescription()) 
+                                            {
+                                                Console.WriteLine("                                        ModemDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ModemDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorSize");
+                                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                            {
+                                                Console.WriteLine("                                        MonitorViewableDiagonalSize");
+                                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                                            {
+                                                Console.WriteLine("                                        MouseDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MouseDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetMPN()) 
+                                            {
+                                                Console.WriteLine("                                        MPN");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MPN);
+                                            }
+                                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                                            {
+                                                Console.WriteLine("                                        MusicalStyle");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.MusicalStyle);
+                                            }
+                                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                                            {
+                                                Console.WriteLine("                                        NativeResolution");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NativeResolution);
+                                            }
+                                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                                            {
+                                                Console.WriteLine("                                        Neighborhood");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Neighborhood);
+                                            }
+                                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NetworkInterfaceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookDisplayTechnology");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                                            }
+                                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                            {
+                                                Console.WriteLine("                                        NotebookPointingDeviceDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfDiscs");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfDiscs);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfIssues");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfIssues);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfItems");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfItems);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfKeys");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfKeys);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPages");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPages);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfPearls");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfPearls);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfRapidFireShots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStones");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStones);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfStrings");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfStrings);
+                                            }
+                                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                                            {
+                                                Console.WriteLine("                                        NumberOfTracks");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.NumberOfTracks);
+                                            }
+                                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                                            {
+                                                Console.WriteLine("                                        OpticalZoom");
+                                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                                            } 
+                                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        OriginalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                                            {
+                                                Console.WriteLine("                                        OutputWattage");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.OutputWattage);
+                                            }
+                                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        PackageDimensions");
+                                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                                if (packageDimensions.IsSetHeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Height");
+                                                    DecimalWithUnits  height = packageDimensions.Height;
+                                                } 
+                                                if (packageDimensions.IsSetLength()) 
+                                                {
+                                                    Console.WriteLine("                                            Length");
+                                                    DecimalWithUnits  length = packageDimensions.Length;
+                                                } 
+                                                if (packageDimensions.IsSetWeight()) 
+                                                {
+                                                    Console.WriteLine("                                            Weight");
+                                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                                } 
+                                                if (packageDimensions.IsSetWidth()) 
+                                                {
+                                                    Console.WriteLine("                                            Width");
+                                                    DecimalWithUnits  width = packageDimensions.Width;
+                                                } 
+                                            } 
+                                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                                            {
+                                                Console.WriteLine("                                        PearlLustre");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlLustre);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                                            {
+                                                Console.WriteLine("                                        PearlMinimumColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlMinimumColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlShape()) 
+                                            {
+                                                Console.WriteLine("                                        PearlShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                                            {
+                                                Console.WriteLine("                                        PearlStringingMethod");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlStringingMethod);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                            {
+                                                Console.WriteLine("                                        PearlSurfaceBlemishes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlType()) 
+                                            {
+                                                Console.WriteLine("                                        PearlType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlType);
+                                            }
+                                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                                            {
+                                                Console.WriteLine("                                        PearlUniformity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PearlUniformity);
+                                            }
+                                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                                            {
+                                                Console.WriteLine("                                        PhoneNumber");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PhoneNumber);
+                                            }
+                                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                                            foreach (String photoFlashType in photoFlashTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        PhotoFlashType");
+                                                Console.WriteLine("                                            {0}", photoFlashType);
+                                            }	
+                                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                                            foreach (String pictureFormat in pictureFormatList) 
+                                            { 
+                                                Console.WriteLine("                                        PictureFormat");
+                                                Console.WriteLine("                                            {0}", pictureFormat);
+                                            }	
+                                            List<String> platformList  =  merchantItemAttributes.Platform;
+                                            foreach (String platform in platformList) 
+                                            { 
+                                                Console.WriteLine("                                        Platform");
+                                                Console.WriteLine("                                            {0}", platform);
+                                            }	
+                                            if (merchantItemAttributes.IsSetPriceRating()) 
+                                            {
+                                                Console.WriteLine("                                        PriceRating");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PriceRating);
+                                            }
+                                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                                            {
+                                                Console.WriteLine("                                        ProcessorCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProcessorCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetProductGroup()) 
+                                            {
+                                                Console.WriteLine("                                        ProductGroup");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ProductGroup);
+                                            }
+                                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionalTag");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PromotionalTag);
+                                            }
+                                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                                            {
+                                                Console.WriteLine("                                        POBoxShippingExcluded");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                                            {
+                                                Console.WriteLine("                                        PublicationDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.PublicationDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetPublisher()) 
+                                            {
+                                                Console.WriteLine("                                        Publisher");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Publisher);
+                                            }
+                                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                                            foreach (String purchasingChannel in purchasingChannelList) 
+                                            { 
+                                                Console.WriteLine("                                        PurchasingChannel");
+                                                Console.WriteLine("                                            {0}", purchasingChannel);
+                                            }	
+                                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                                            {
+                                                Console.WriteLine("                                        ReadingLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReadingLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                                            {
+                                                Console.WriteLine("                                        RecorderTrackCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RecorderTrackCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionCode()) 
+                                            {
+                                                Console.WriteLine("                                        RegionCode");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionCode);
+                                            }
+                                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                                            {
+                                                Console.WriteLine("                                        RegionOfOrigin");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RegionOfOrigin);
+                                            }
+                                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        ReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReleaseDate);
+                                            }
+                                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                                            foreach (String returnMethod in returnMethodList) 
+                                            { 
+                                                Console.WriteLine("                                        ReturnMethod");
+                                                Console.WriteLine("                                            {0}", returnMethod);
+                                            }	
+                                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                                            {
+                                                Console.WriteLine("                                        RemovableMemory");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RemovableMemory);
+                                            }
+                                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                                            {
+                                                Console.WriteLine("                                        ResolutionModes");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ResolutionModes);
+                                            }
+                                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                                            {
+                                                Console.WriteLine("                                        ReturnPolicy");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.ReturnPolicy);
+                                            }
+                                            if (merchantItemAttributes.IsSetRingSize()) 
+                                            {
+                                                Console.WriteLine("                                        RingSize");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.RingSize);
+                                            }
+                                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                                            {
+                                                Console.WriteLine("                                        SafetyWarning");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SafetyWarning);
+                                            }
+                                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                                            {
+                                                Console.WriteLine("                                        SalesRestriction");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SalesRestriction);
+                                            }
+                                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                                            {
+                                                Console.WriteLine("                                        SecondaryCacheSize");
+                                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSettingType()) 
+                                            {
+                                                Console.WriteLine("                                        SettingType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SettingType);
+                                            }
+                                            if (merchantItemAttributes.IsSetSize()) 
+                                            {
+                                                Console.WriteLine("                                        Size");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Size);
+                                            }
+                                            if (merchantItemAttributes.IsSetSKU()) 
+                                            {
+                                                Console.WriteLine("                                        SKU");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SKU);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                                            {
+                                                Console.WriteLine("                                        SoldInStores");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoldInStores);
+                                            }
+                                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                                            {
+                                                Console.WriteLine("                                        SizePerPearl");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SizePerPearl);
+                                            }
+                                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                                            {
+                                                Console.WriteLine("                                        SkillLevel");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SkillLevel);
+                                            }
+                                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SoundCardDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SoundCardDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerCount");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerCount);
+                                            }
+                                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                                            {
+                                                Console.WriteLine("                                        SpeakerDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SpeakerDescription);
+                                            }
+                                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                                            foreach (String specialFeatures in specialFeaturesList) 
+                                            { 
+                                                Console.WriteLine("                                        SpecialFeatures");
+                                                Console.WriteLine("                                            {0}", specialFeatures);
+                                            }	
+                                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                                            {
+                                                Console.WriteLine("                                        StoneClarity");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneClarity);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneColor()) 
+                                            {
+                                                Console.WriteLine("                                        StoneColor");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneColor);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneCut()) 
+                                            {
+                                                Console.WriteLine("                                        StoneCut");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneCut);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneShape()) 
+                                            {
+                                                Console.WriteLine("                                        StoneShape");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.StoneShape);
+                                            }
+                                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                                            {
+                                                Console.WriteLine("                                        StoneWeight");
+                                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetStudio()) 
+                                            {
+                                                Console.WriteLine("                                        Studio");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Studio);
+                                            }
+                                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                                            {
+                                                Console.WriteLine("                                        SubscriptionLength");
+                                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                                            } 
+                                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                                            foreach (String supportedImageType in supportedImageTypeList) 
+                                            { 
+                                                Console.WriteLine("                                        SupportedImageType");
+                                                Console.WriteLine("                                            {0}", supportedImageType);
+                                            }	
+                                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                                            {
+                                                Console.WriteLine("                                        SystemBusSpeed");
+                                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySizeMax");
+                                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemorySize");
+                                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                                            } 
+                                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                                            {
+                                                Console.WriteLine("                                        SystemMemoryType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.SystemMemoryType);
+                                            }
+                                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                                            {
+                                                Console.WriteLine("                                        TellingPageIndicator");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TellingPageIndicator);
+                                            }
+                                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                                            {
+                                                Console.WriteLine("                                        TheatricalReleaseDate");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                                            }
+                                            if (merchantItemAttributes.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Title);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalDiamondWeight");
+                                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFirewirePorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalGemWeight");
+                                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalInternalBaysFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                                            {
+                                                Console.WriteLine("                                        TotalMetalWeight");
+                                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                                            } 
+                                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNTSCPALPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalParallelPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalParallelPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCCardSlots");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                                            {
+                                                Console.WriteLine("                                        TotalPCISlotsFree");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSerialPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSerialPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalSVideoOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSB2Ports");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUSBPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalUSBPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVGAOutPorts");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                                            }
+                                            if (merchantItemAttributes.IsSetUPC()) 
+                                            {
+                                                Console.WriteLine("                                        UPC");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.UPC);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDenomination");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDenomination);
+                                            }
+                                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDescription");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.VariationDescription);
+                                            }
+                                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                                            {
+                                                Console.WriteLine("                                        VendorRebate");
+                                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                                if (vendorRebate.IsSetType()) 
+                                                {
+                                                    Console.WriteLine("                                            Type");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.Type);
+                                                }
+                                                if (vendorRebate.IsSetStartDate()) 
+                                                {
+                                                    Console.WriteLine("                                            StartDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.StartDate);
+                                                }
+                                                if (vendorRebate.IsSetEndDate()) 
+                                                {
+                                                    Console.WriteLine("                                            EndDate");
+                                                    Console.WriteLine("                                                {0}", vendorRebate.EndDate);
+                                                }
+                                            } 
+                                            if (merchantItemAttributes.IsSetWarranty()) 
+                                            {
+                                                Console.WriteLine("                                        Warranty");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.Warranty);
+                                            }
+                                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                                            {
+                                                Console.WriteLine("                                        WatchMovementType");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WatchMovementType);
+                                            }
+                                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                                            {
+                                                Console.WriteLine("                                        WebsiteBuyability");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WebsiteBuyability);
+                                            }
+                                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                                            {
+                                                Console.WriteLine("                                        WaterResistanceDepth");
+                                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                                            } 
+                                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                            {
+                                                Console.WriteLine("                                        WirelessMicrophoneFrequency");
+                                                Console.WriteLine("                                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                                            }
+                                        } 
+                                        if (item.IsSetCollections()) 
+                                        {
+                                            Console.WriteLine("                                    Collections");
+                                            Collections  collections = item.Collections;
+                                            List<CollectionsCollection> collectionList = collections.Collection;
+                                            foreach (CollectionsCollection collection in collectionList) 
+                                            {
+                                                Console.WriteLine("                                        Collection");
+                                                if (collection.IsSetCollectionSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionSummary");
+                                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestListPrice");
+                                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                                        if (lowestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.Amount);
+                                                        }
+                                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.CurrencyCode);
+                                                        }
+                                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestListPrice");
+                                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                                        if (highestListPrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.Amount);
+                                                        }
+                                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.CurrencyCode);
+                                                        }
+                                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestListPrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                LowestSalePrice");
+                                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                                        if (lowestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.Amount);
+                                                        }
+                                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", lowestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                HighestSalePrice");
+                                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                                        if (highestSalePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.Amount);
+                                                        }
+                                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.CurrencyCode);
+                                                        }
+                                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", highestSalePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (collection.IsSetCollectionParent()) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionParent");
+                                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                                    if (collectionParent.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.ASIN);
+                                                    }
+                                                    if (collectionParent.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionParent.Title);
+                                                    }
+                                                } 
+                                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                                {
+                                                    Console.WriteLine("                                            CollectionItem");
+                                                    if (collectionItem.IsSetASIN()) 
+                                                    {
+                                                        Console.WriteLine("                                                ASIN");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.ASIN);
+                                                    }
+                                                    if (collectionItem.IsSetTitle()) 
+                                                    {
+                                                        Console.WriteLine("                                                Title");
+                                                        Console.WriteLine("                                                    {0}", collectionItem.Title);
+                                                    }
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSubjects()) 
+                                        {
+                                            Console.WriteLine("                                    Subjects");
+                                            Subjects  subjects = item.Subjects;
+                                            List<String> subjectList  =  subjects.Subject;
+                                            foreach (String subject in subjectList) 
+                                            { 
+                                                Console.WriteLine("                                        Subject");
+                                                Console.WriteLine("                                            {0}", subject);
+                                            }	
+                                        } 
+                                        if (item.IsSetOfferSummary()) 
+                                        {
+                                            Console.WriteLine("                                    OfferSummary");
+                                            OfferSummary  offerSummary = item.OfferSummary;
+                                            if (offerSummary.IsSetLowestNewPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestNewPrice");
+                                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                                if (lowestNewPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.Amount);
+                                                }
+                                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.CurrencyCode);
+                                                }
+                                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestNewPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestUsedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestUsedPrice");
+                                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                                if (lowestUsedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.Amount);
+                                                }
+                                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.CurrencyCode);
+                                                }
+                                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestUsedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestCollectiblePrice");
+                                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.Amount);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                                }
+                                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestRefurbishedPrice");
+                                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.Amount);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                                }
+                                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerSummary.IsSetTotalNew()) 
+                                            {
+                                                Console.WriteLine("                                        TotalNew");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalNew);
+                                            }
+                                            if (offerSummary.IsSetTotalUsed()) 
+                                            {
+                                                Console.WriteLine("                                        TotalUsed");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalUsed);
+                                            }
+                                            if (offerSummary.IsSetTotalCollectible()) 
+                                            {
+                                                Console.WriteLine("                                        TotalCollectible");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalCollectible);
+                                            }
+                                            if (offerSummary.IsSetTotalRefurbished()) 
+                                            {
+                                                Console.WriteLine("                                        TotalRefurbished");
+                                                Console.WriteLine("                                            {0}", offerSummary.TotalRefurbished);
+                                            }
+                                        } 
+                                        if (item.IsSetOffers()) 
+                                        {
+                                            Console.WriteLine("                                    Offers");
+                                            Offers  offers = item.Offers;
+                                            if (offers.IsSetTotalOffers()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOffers");
+                                                Console.WriteLine("                                            {0}", offers.TotalOffers);
+                                            }
+                                            if (offers.IsSetTotalOfferPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalOfferPages");
+                                                Console.WriteLine("                                            {0}", offers.TotalOfferPages);
+                                            }
+                                            List<Offer> offerList = offers.Offer;
+                                            foreach (Offer offer in offerList) 
+                                            {
+                                                Console.WriteLine("                                        Offer");
+                                                if (offer.IsSetMerchant()) 
+                                                {
+                                                    Console.WriteLine("                                            Merchant");
+                                                    Merchant  merchant = offer.Merchant;
+                                                    if (merchant.IsSetMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantId");
+                                                        Console.WriteLine("                                                    {0}", merchant.MerchantId);
+                                                    }
+                                                    if (merchant.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", merchant.Name);
+                                                    }
+                                                    if (merchant.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", merchant.GlancePage);
+                                                    }
+                                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", merchant.AverageFeedbackRating);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedback);
+                                                    }
+                                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", merchant.TotalFeedbackPages);
+                                                    }
+                                                } 
+                                                if (offer.IsSetSeller()) 
+                                                {
+                                                    Console.WriteLine("                                            Seller");
+                                                    Seller  seller = offer.Seller;
+                                                    if (seller.IsSetSellerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerId");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerId);
+                                                    }
+                                                    if (seller.IsSetSellerName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerName);
+                                                    }
+                                                    if (seller.IsSetSellerLegalName()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerLegalName");
+                                                        Console.WriteLine("                                                    {0}", seller.SellerLegalName);
+                                                    }
+                                                    if (seller.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", seller.Nickname);
+                                                    }
+                                                    if (seller.IsSetGlancePage()) 
+                                                    {
+                                                        Console.WriteLine("                                                GlancePage");
+                                                        Console.WriteLine("                                                    {0}", seller.GlancePage);
+                                                    }
+                                                    if (seller.IsSetAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                About");
+                                                        Console.WriteLine("                                                    {0}", seller.About);
+                                                    }
+                                                    if (seller.IsSetMoreAbout()) 
+                                                    {
+                                                        Console.WriteLine("                                                MoreAbout");
+                                                        Console.WriteLine("                                                    {0}", seller.MoreAbout);
+                                                    }
+                                                    if (seller.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        SellerLocation  location = seller.Location;
+                                                        if (location.IsSetUserDefinedLocation()) 
+                                                        {
+                                                            Console.WriteLine("                                                    UserDefinedLocation");
+                                                            Console.WriteLine("                                                        {0}", location.UserDefinedLocation);
+                                                        }
+                                                        if (location.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", location.City);
+                                                        }
+                                                        if (location.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", location.State);
+                                                        }
+                                                        if (location.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", location.Country);
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetAverageFeedbackRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                AverageFeedbackRating");
+                                                        Console.WriteLine("                                                    {0}", seller.AverageFeedbackRating);
+                                                    }
+                                                    if (seller.IsSetTotalFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedback");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedback);
+                                                    }
+                                                    if (seller.IsSetTotalFeedbackPages()) 
+                                                    {
+                                                        Console.WriteLine("                                                TotalFeedbackPages");
+                                                        Console.WriteLine("                                                    {0}", seller.TotalFeedbackPages);
+                                                    }
+                                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedbackSummary");
+                                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                                        {
+                                                            Console.WriteLine("                                                    FeedbackDateRange");
+                                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                                            {
+                                                                Console.WriteLine("                                                        SellerFeedbackRating");
+                                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Count");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Count);
+                                                                }
+                                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Percentage");
+                                                                    Console.WriteLine("                                                                {0}", sellerFeedbackRating.Percentage);
+                                                                }
+                                                            }
+                                                        }
+                                                    } 
+                                                    if (seller.IsSetSellerFeedback()) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedback");
+                                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                                        foreach (Feedback feedback in feedbackList) 
+                                                        {
+                                                            Console.WriteLine("                                                    Feedback");
+                                                            if (feedback.IsSetRating()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Rating");
+                                                                Console.WriteLine("                                                            {0}", feedback.Rating);
+                                                            }
+                                                            if (feedback.IsSetComment()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Comment");
+                                                                Console.WriteLine("                                                            {0}", feedback.Comment);
+                                                            }
+                                                            if (feedback.IsSetDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Date");
+                                                                Console.WriteLine("                                                            {0}", feedback.Date);
+                                                            }
+                                                            if (feedback.IsSetRatedBy()) 
+                                                            {
+                                                                Console.WriteLine("                                                        RatedBy");
+                                                                Console.WriteLine("                                                            {0}", feedback.RatedBy);
+                                                            }
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetOfferAttributes()) 
+                                                {
+                                                    Console.WriteLine("                                            OfferAttributes");
+                                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                                    if (offerAttributes.IsSetCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                Condition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.Condition);
+                                                    }
+                                                    if (offerAttributes.IsSetSubCondition()) 
+                                                    {
+                                                        Console.WriteLine("                                                SubCondition");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.SubCondition);
+                                                    }
+                                                    if (offerAttributes.IsSetConditionNote()) 
+                                                    {
+                                                        Console.WriteLine("                                                ConditionNote");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.ConditionNote);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipExpedited");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipExpedited);
+                                                    }
+                                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                                    {
+                                                        Console.WriteLine("                                                WillShipInternational");
+                                                        Console.WriteLine("                                                    {0}", offerAttributes.WillShipInternational);
+                                                    }
+                                                } 
+                                                List<OfferListing> offerListingList = offer.OfferListing;
+                                                foreach (OfferListing offerListing in offerListingList) 
+                                                {
+                                                    Console.WriteLine("                                            OfferListing");
+                                                    if (offerListing.IsSetOfferListingId()) 
+                                                    {
+                                                        Console.WriteLine("                                                OfferListingId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.OfferListingId);
+                                                    }
+                                                    if (offerListing.IsSetExchangeId()) 
+                                                    {
+                                                        Console.WriteLine("                                                ExchangeId");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ExchangeId);
+                                                    }
+                                                    if (offerListing.IsSetPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                Price");
+                                                        Price  price = offerListing.Price;
+                                                        if (price.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", price.Amount);
+                                                        }
+                                                        if (price.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", price.CurrencyCode);
+                                                        }
+                                                        if (price.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", price.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetSalePrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalePrice");
+                                                        Price  salePrice = offerListing.SalePrice;
+                                                        if (salePrice.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", salePrice.Amount);
+                                                        }
+                                                        if (salePrice.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", salePrice.CurrencyCode);
+                                                        }
+                                                        if (salePrice.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", salePrice.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetAmountSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                AmountSaved");
+                                                        Price  amountSaved = offerListing.AmountSaved;
+                                                        if (amountSaved.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.Amount);
+                                                        }
+                                                        if (amountSaved.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.CurrencyCode);
+                                                        }
+                                                        if (amountSaved.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", amountSaved.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetPercentageSaved()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentageSaved");
+                                                        Console.WriteLine("                                                    {0}", offerListing.PercentageSaved);
+                                                    }
+                                                    if (offerListing.IsSetAvailability()) 
+                                                    {
+                                                        Console.WriteLine("                                                Availability");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Availability);
+                                                    }
+                                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                                    {
+                                                        Console.WriteLine("                                                AvailabilityAttributes");
+                                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    AvailabilityType");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.AvailabilityType);
+                                                        }
+                                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsPreorder");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.IsPreorder);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MinimumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MinimumHours);
+                                                        }
+                                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                                        {
+                                                            Console.WriteLine("                                                    MaximumHours");
+                                                            Console.WriteLine("                                                        {0}", availabilityAttributes.MaximumHours);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", offerListing.Quantity);
+                                                    }
+                                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreAddress");
+                                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                                        if (ISPUStoreAddress.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Name);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address1");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address1);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address2");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address2);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Address3");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Address3);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCity()) 
+                                                        {
+                                                            Console.WriteLine("                                                    City");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.City);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetState()) 
+                                                        {
+                                                            Console.WriteLine("                                                    State");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.State);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    PostalCode");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.PostalCode);
+                                                        }
+                                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Country");
+                                                            Console.WriteLine("                                                        {0}", ISPUStoreAddress.Country);
+                                                        }
+                                                    } 
+                                                    if (offerListing.IsSetISPUStoreHours()) 
+                                                    {
+                                                        Console.WriteLine("                                                ISPUStoreHours");
+                                                        Console.WriteLine("                                                    {0}", offerListing.ISPUStoreHours);
+                                                    }
+                                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                                    {
+                                                        Console.WriteLine("                                                IsEligibleForSuperSaverShipping");
+                                                        Console.WriteLine("                                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                                    }
+                                                    if (offerListing.IsSetSalesRestriction()) 
+                                                    {
+                                                        Console.WriteLine("                                                SalesRestriction");
+                                                        Console.WriteLine("                                                    {0}", offerListing.SalesRestriction);
+                                                    }
+                                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                                    {
+                                                        Console.WriteLine("                                                ShippingCharge");
+                                                        if (shippingCharge.IsSetShippingType()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingType");
+                                                            Console.WriteLine("                                                        {0}", shippingCharge.ShippingType);
+                                                        }
+                                                        if (shippingCharge.IsSetShippingPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ShippingPrice");
+                                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                                            if (shippingPrice.IsSetAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Amount");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.Amount);
+                                                            }
+                                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CurrencyCode");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.CurrencyCode);
+                                                            }
+                                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                                            {
+                                                                Console.WriteLine("                                                        FormattedPrice");
+                                                                Console.WriteLine("                                                            {0}", shippingPrice.FormattedPrice);
+                                                            }
+                                                        } 
+                                                    }
+                                                }
+                                                if (offer.IsSetLoyaltyPoints()) 
+                                                {
+                                                    Console.WriteLine("                                            LoyaltyPoints");
+                                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                                    if (loyaltyPoints.IsSetPoints()) 
+                                                    {
+                                                        Console.WriteLine("                                                Points");
+                                                        Console.WriteLine("                                                    {0}", loyaltyPoints.Points);
+                                                    }
+                                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                                    {
+                                                        Console.WriteLine("                                                TypicalRedemptionValue");
+                                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.Amount);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                                        }
+                                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                                        }
+                                                    } 
+                                                } 
+                                                if (offer.IsSetPromotions()) 
+                                                {
+                                                    Console.WriteLine("                                            Promotions");
+                                                    Promotions  promotions = offer.Promotions;
+                                                    List<Promotion> promotionList = promotions.Promotion;
+                                                    foreach (Promotion promotion in promotionList) 
+                                                    {
+                                                        Console.WriteLine("                                                Promotion");
+                                                        if (promotion.IsSetSummary()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Summary");
+                                                            PromotionSummary  summary = promotion.Summary;
+                                                            if (summary.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", summary.PromotionId);
+                                                            }
+                                                            if (summary.IsSetCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Category");
+                                                                Console.WriteLine("                                                            {0}", summary.Category);
+                                                            }
+                                                            if (summary.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", summary.StartDate);
+                                                            }
+                                                            if (summary.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", summary.EndDate);
+                                                            }
+                                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirementDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.EligibilityRequirementDescription);
+                                                            }
+                                                            if (summary.IsSetBenefitDescription()) 
+                                                            {
+                                                                Console.WriteLine("                                                        BenefitDescription");
+                                                                Console.WriteLine("                                                            {0}", summary.BenefitDescription);
+                                                            }
+                                                            if (summary.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", summary.TermsAndConditions);
+                                                            }
+                                                        } 
+                                                        if (promotion.IsSetDetails()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Details");
+                                                            PromotionDetails  details = promotion.Details;
+                                                            if (details.IsSetMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantId);
+                                                            }
+                                                            if (details.IsSetOwningMerchantId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        OwningMerchantId");
+                                                                Console.WriteLine("                                                            {0}", details.OwningMerchantId);
+                                                            }
+                                                            if (details.IsSetPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionId);
+                                                            }
+                                                            if (details.IsSetPromotionCategory()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PromotionCategory");
+                                                                Console.WriteLine("                                                            {0}", details.PromotionCategory);
+                                                            }
+                                                            if (details.IsSetMerchantPromotionId()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchantPromotionId");
+                                                                Console.WriteLine("                                                            {0}", details.MerchantPromotionId);
+                                                            }
+                                                            if (details.IsSetGroupClaimCode()) 
+                                                            {
+                                                                Console.WriteLine("                                                        GroupClaimCode");
+                                                                Console.WriteLine("                                                            {0}", details.GroupClaimCode);
+                                                            }
+                                                            if (details.IsSetCouponCombinationType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CouponCombinationType");
+                                                                Console.WriteLine("                                                            {0}", details.CouponCombinationType);
+                                                            }
+                                                            if (details.IsSetStartDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        StartDate");
+                                                                Console.WriteLine("                                                            {0}", details.StartDate);
+                                                            }
+                                                            if (details.IsSetEndDate()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EndDate");
+                                                                Console.WriteLine("                                                            {0}", details.EndDate);
+                                                            }
+                                                            if (details.IsSetTermsAndConditions()) 
+                                                            {
+                                                                Console.WriteLine("                                                        TermsAndConditions");
+                                                                Console.WriteLine("                                                            {0}", details.TermsAndConditions);
+                                                            }
+                                                            if (details.IsSetEligibilityRequirements()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirements");
+                                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            EligibilityRequirement");
+                                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                EligibilityRequirementType");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", eligibilityRequirement.Quantity);
+                                                                    }
+                                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                CurrencyAmount");
+                                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                                        if (currencyAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.Amount);
+                                                                        }
+                                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.CurrencyCode);
+                                                                        }
+                                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", currencyAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetBenefits()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Benefits");
+                                                                PromotionBenefits  benefits = details.Benefits;
+                                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Benefit");
+                                                                    if (benefit.IsSetBenefitType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                BenefitType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.BenefitType);
+                                                                    }
+                                                                    if (benefit.IsSetComponentType()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                ComponentType");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.ComponentType);
+                                                                    }
+                                                                    if (benefit.IsSetQuantity()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Quantity");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.Quantity);
+                                                                    }
+                                                                    if (benefit.IsSetPercentOff()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                PercentOff");
+                                                                        Console.WriteLine("                                                                    {0}", benefit.PercentOff);
+                                                                    }
+                                                                    if (benefit.IsSetFixedAmount()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                FixedAmount");
+                                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                                        if (fixedAmount.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.Amount);
+                                                                        }
+                                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.CurrencyCode);
+                                                                        }
+                                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", fixedAmount.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                    if (benefit.IsSetCeiling()) 
+                                                                    {
+                                                                        Console.WriteLine("                                                                Ceiling");
+                                                                        Price  ceiling = benefit.Ceiling;
+                                                                        if (ceiling.IsSetAmount()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    Amount");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.Amount);
+                                                                        }
+                                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    CurrencyCode");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.CurrencyCode);
+                                                                        }
+                                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                                        {
+                                                                            Console.WriteLine("                                                                    FormattedPrice");
+                                                                            Console.WriteLine("                                                                        {0}", ceiling.FormattedPrice);
+                                                                        }
+                                                                    } 
+                                                                }
+                                                            } 
+                                                            if (details.IsSetItemApplicability()) 
+                                                            {
+                                                                Console.WriteLine("                                                        ItemApplicability");
+                                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                                if (itemApplicability.IsSetASIN()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            ASIN");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.ASIN);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInBenefitSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInBenefitSet);
+                                                                }
+                                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            IsInEligibilityRequirementSet");
+                                                                    Console.WriteLine("                                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                                }
+                                                            } 
+                                                            if (details.IsSetMerchandisingMessage()) 
+                                                            {
+                                                                Console.WriteLine("                                                        MerchandisingMessage");
+                                                                Console.WriteLine("                                                            {0}", details.MerchandisingMessage);
+                                                            }
+                                                        } 
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetVariationSummary()) 
+                                        {
+                                            Console.WriteLine("                                    VariationSummary");
+                                            VariationSummary  variationSummary = item.VariationSummary;
+                                            if (variationSummary.IsSetLowestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestPrice");
+                                                Price  lowestPrice = variationSummary.LowestPrice;
+                                                if (lowestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.Amount);
+                                                }
+                                                if (lowestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.CurrencyCode);
+                                                }
+                                                if (lowestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestPrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestPrice");
+                                                Price  highestPrice = variationSummary.HighestPrice;
+                                                if (highestPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestPrice.Amount);
+                                                }
+                                                if (highestPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestPrice.CurrencyCode);
+                                                }
+                                                if (highestPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetLowestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestSalePrice");
+                                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                                if (lowestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.Amount);
+                                                }
+                                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.CurrencyCode);
+                                                }
+                                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetHighestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestSalePrice");
+                                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                                if (highestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.Amount);
+                                                }
+                                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.CurrencyCode);
+                                                }
+                                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (variationSummary.IsSetSingleMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        SingleMerchantId");
+                                                Console.WriteLine("                                            {0}", variationSummary.SingleMerchantId);
+                                            }
+                                        } 
+                                        if (item.IsSetVariations()) 
+                                        {
+                                            Console.WriteLine("                                    Variations");
+                                            Variations  variations = item.Variations;
+                                            if (variations.IsSetTotalVariations()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariations");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariations);
+                                            }
+                                            if (variations.IsSetTotalVariationPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalVariationPages");
+                                                Console.WriteLine("                                            {0}", variations.TotalVariationPages);
+                                            }
+                                            if (variations.IsSetVariationDimensions()) 
+                                            {
+                                                Console.WriteLine("                                        VariationDimensions");
+                                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                                foreach (String variationDimension in variationDimensionList) 
+                                                { 
+                                                    Console.WriteLine("                                            VariationDimension");
+                                                    Console.WriteLine("                                                {0}", variationDimension);
+                                                }	
+                                            } 
+                                        } 
+                                        if (item.IsSetCustomerReviews()) 
+                                        {
+                                            Console.WriteLine("                                    CustomerReviews");
+                                            CustomerReviews  customerReviews = item.CustomerReviews;
+                                            if (customerReviews.IsSetAverageRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageRating");
+                                                Console.WriteLine("                                            {0}", customerReviews.AverageRating);
+                                            }
+                                            if (customerReviews.IsSetTotalReviews()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviews");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviews);
+                                            }
+                                            if (customerReviews.IsSetTotalReviewPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalReviewPages");
+                                                Console.WriteLine("                                            {0}", customerReviews.TotalReviewPages);
+                                            }
+                                            List<Review> reviewList = customerReviews.Review;
+                                            foreach (Review review in reviewList) 
+                                            {
+                                                Console.WriteLine("                                        Review");
+                                                if (review.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", review.ASIN);
+                                                }
+                                                if (review.IsSetRating()) 
+                                                {
+                                                    Console.WriteLine("                                            Rating");
+                                                    Console.WriteLine("                                                {0}", review.Rating);
+                                                }
+                                                if (review.IsSetHelpfulVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            HelpfulVotes");
+                                                    Console.WriteLine("                                                {0}", review.HelpfulVotes);
+                                                }
+                                                if (review.IsSetCustomerId()) 
+                                                {
+                                                    Console.WriteLine("                                            CustomerId");
+                                                    Console.WriteLine("                                                {0}", review.CustomerId);
+                                                }
+                                                if (review.IsSetReviewer()) 
+                                                {
+                                                    Console.WriteLine("                                            Reviewer");
+                                                    Reviewer  reviewer = review.Reviewer;
+                                                    if (reviewer.IsSetCustomerId()) 
+                                                    {
+                                                        Console.WriteLine("                                                CustomerId");
+                                                        Console.WriteLine("                                                    {0}", reviewer.CustomerId);
+                                                    }
+                                                    if (reviewer.IsSetName()) 
+                                                    {
+                                                        Console.WriteLine("                                                Name");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Name);
+                                                    }
+                                                    if (reviewer.IsSetNickname()) 
+                                                    {
+                                                        Console.WriteLine("                                                Nickname");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Nickname);
+                                                    }
+                                                    if (reviewer.IsSetLocation()) 
+                                                    {
+                                                        Console.WriteLine("                                                Location");
+                                                        Console.WriteLine("                                                    {0}", reviewer.Location);
+                                                    }
+                                                } 
+                                                if (review.IsSetTotalVotes()) 
+                                                {
+                                                    Console.WriteLine("                                            TotalVotes");
+                                                    Console.WriteLine("                                                {0}", review.TotalVotes);
+                                                }
+                                                if (review.IsSetDate()) 
+                                                {
+                                                    Console.WriteLine("                                            Date");
+                                                    Console.WriteLine("                                                {0}", review.Date);
+                                                }
+                                                if (review.IsSetSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            Summary");
+                                                    Console.WriteLine("                                                {0}", review.Summary);
+                                                }
+                                                if (review.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", review.Content);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetEditorialReviews()) 
+                                        {
+                                            Console.WriteLine("                                    EditorialReviews");
+                                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                                            {
+                                                Console.WriteLine("                                        EditorialReview");
+                                                if (editorialReview.IsSetSource()) 
+                                                {
+                                                    Console.WriteLine("                                            Source");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Source);
+                                                }
+                                                if (editorialReview.IsSetContent()) 
+                                                {
+                                                    Console.WriteLine("                                            Content");
+                                                    Console.WriteLine("                                                {0}", editorialReview.Content);
+                                                }
+                                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                                {
+                                                    Console.WriteLine("                                            IsLinkSuppressed");
+                                                    Console.WriteLine("                                                {0}", editorialReview.IsLinkSuppressed);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetSimilarProducts()) 
+                                        {
+                                            Console.WriteLine("                                    SimilarProducts");
+                                            SimilarProducts  similarProducts = item.SimilarProducts;
+                                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                                            foreach (SimilarProduct similarProduct in similarProductList) 
+                                            {
+                                                Console.WriteLine("                                        SimilarProduct");
+                                                if (similarProduct.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", similarProduct.ASIN);
+                                                }
+                                                if (similarProduct.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", similarProduct.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetAccessories()) 
+                                        {
+                                            Console.WriteLine("                                    Accessories");
+                                            Accessories  accessories = item.Accessories;
+                                            List<Accessory> accessoryList = accessories.Accessory;
+                                            foreach (Accessory accessory in accessoryList) 
+                                            {
+                                                Console.WriteLine("                                        Accessory");
+                                                if (accessory.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", accessory.ASIN);
+                                                }
+                                                if (accessory.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", accessory.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetTracks()) 
+                                        {
+                                            Console.WriteLine("                                    Tracks");
+                                            Tracks  tracks = item.Tracks;
+                                            List<Disc> discList = tracks.Disc;
+                                            foreach (Disc disc in discList) 
+                                            {
+                                                Console.WriteLine("                                        Disc");
+                                                List<Track> trackList = disc.Track;
+                                                foreach (Track track in trackList) 
+                                                {
+                                                    Console.WriteLine("                                            Track");
+                                                }
+                                            }
+                                        } 
+                                        if (item.IsSetBrowseNodes()) 
+                                        {
+                                            Console.WriteLine("                                    BrowseNodes");
+                                            BrowseNodes  browseNodes = item.BrowseNodes;
+                                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                                            foreach (BrowseNode browseNode in browseNodeList) 
+                                            {
+                                                Console.WriteLine("                                        BrowseNode");
+                                                if (browseNode.IsSetBrowseNodeId()) 
+                                                {
+                                                    Console.WriteLine("                                            BrowseNodeId");
+                                                    Console.WriteLine("                                                {0}", browseNode.BrowseNodeId);
+                                                }
+                                                if (browseNode.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", browseNode.Name);
+                                                }
+                                                if (browseNode.IsSetIsCategoryRoot()) 
+                                                {
+                                                    Console.WriteLine("                                            IsCategoryRoot");
+                                                    Console.WriteLine("                                                {0}", browseNode.IsCategoryRoot);
+                                                }
+                                                if (browseNode.IsSetProperties()) 
+                                                {
+                                                    Console.WriteLine("                                            Properties");
+                                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                                    List<Property> propertyList = properties.Property;
+                                                    foreach (Property property in propertyList) 
+                                                    {
+                                                        Console.WriteLine("                                                Property");
+                                                        if (property.IsSetName()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Name");
+                                                            Console.WriteLine("                                                        {0}", property.Name);
+                                                        }
+                                                        if (property.IsSetValue()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Value");
+                                                            Console.WriteLine("                                                        {0}", property.Value);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetChildren()) 
+                                                {
+                                                    Console.WriteLine("                                            Children");
+                                                    BrowseNodeChildren  children = browseNode.Children;
+                                                } 
+                                                if (browseNode.IsSetAncestors()) 
+                                                {
+                                                    Console.WriteLine("                                            Ancestors");
+                                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                                } 
+                                                if (browseNode.IsSetTopSellers()) 
+                                                {
+                                                    Console.WriteLine("                                            TopSellers");
+                                                    TopSellers  topSellers = browseNode.TopSellers;
+                                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                                    foreach (TopSeller topSeller in topSellerList) 
+                                                    {
+                                                        Console.WriteLine("                                                TopSeller");
+                                                        if (topSeller.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", topSeller.ASIN);
+                                                        }
+                                                        if (topSeller.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", topSeller.Title);
+                                                        }
+                                                    }
+                                                } 
+                                                if (browseNode.IsSetNewReleases()) 
+                                                {
+                                                    Console.WriteLine("                                            NewReleases");
+                                                    NewReleases  newReleases = browseNode.NewReleases;
+                                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                                    foreach (NewRelease newRelease in newReleaseList) 
+                                                    {
+                                                        Console.WriteLine("                                                NewRelease");
+                                                        if (newRelease.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", newRelease.ASIN);
+                                                        }
+                                                        if (newRelease.IsSetTitle()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Title");
+                                                            Console.WriteLine("                                                        {0}", newRelease.Title);
+                                                        }
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                        if (item.IsSetSearchInside()) 
+                                        {
+                                            Console.WriteLine("                                    SearchInside");
+                                            SearchInside  searchInside = item.SearchInside;
+                                            if (searchInside.IsSetTotalExcerpts()) 
+                                            {
+                                                Console.WriteLine("                                        TotalExcerpts");
+                                                Console.WriteLine("                                            {0}", searchInside.TotalExcerpts);
+                                            }
+                                            if (searchInside.IsSetExcerpt()) 
+                                            {
+                                                Console.WriteLine("                                        Excerpt");
+                                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                                if (excerpt.IsSetChecksum()) 
+                                                {
+                                                    Console.WriteLine("                                            Checksum");
+                                                    Console.WriteLine("                                                {0}", excerpt.Checksum);
+                                                }
+                                                if (excerpt.IsSetPageType()) 
+                                                {
+                                                    Console.WriteLine("                                            PageType");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageType);
+                                                }
+                                                if (excerpt.IsSetPageNumber()) 
+                                                {
+                                                    Console.WriteLine("                                            PageNumber");
+                                                    Console.WriteLine("                                                {0}", excerpt.PageNumber);
+                                                }
+                                                if (excerpt.IsSetSequenceNumber()) 
+                                                {
+                                                    Console.WriteLine("                                            SequenceNumber");
+                                                    Console.WriteLine("                                                {0}", excerpt.SequenceNumber);
+                                                }
+                                                if (excerpt.IsSetText()) 
+                                                {
+                                                    Console.WriteLine("                                            Text");
+                                                    Console.WriteLine("                                                {0}", excerpt.Text);
+                                                }
+                                            } 
+                                        } 
+                                        if (item.IsSetListmaniaLists()) 
+                                        {
+                                            Console.WriteLine("                                    ListmaniaLists");
+                                            ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                                            List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                                            foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                                            {
+                                                Console.WriteLine("                                        ListmaniaList");
+                                                if (listmaniaList.IsSetListId()) 
+                                                {
+                                                    Console.WriteLine("                                            ListId");
+                                                    Console.WriteLine("                                                {0}", listmaniaList.ListId);
+                                                }
+                                            }
+                                        } 
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                                }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingLookupSample.cs
new file mode 100644
index 0000000..39c69fc
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingLookupSample.cs
@@ -0,0 +1,366 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Seller Listing Lookup  Samples
+    /// </summary>
+    public class SellerListingLookupSample
+    {
+    
+                                                                                             
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The SellerListingLookup operation enables you to return information
+        /// about a seller's listings, including product descriptions, availability,
+        /// condition, and quantity available. The response also includes the seller's nickname.
+        /// Each request requires a seller ID.
+        /// <p/>
+        /// You can also find a seller's items using ItemLookup. There are, however,
+        /// some reasons why it is better to use SellerListingLookup:
+        /// <p/>
+        /// <ul>
+        /// <li>SellerListingLookup enables you to search by seller ID.</li>
+        /// <li>SellerListingLookup returns much more information than ItemLookup.</li>
+        /// </ul>
+        /// <p/>
+        /// This operation only works with sellers who have less than 100,000 items for sale.
+        /// Sellers that have more items for sale should use, instead of ECS, other APIs,
+        /// including the Amazon Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">SellerListingLookup request</param>
+        public static void InvokeSellerListingLookup(AmazonECS service, params SellerListingLookupRequest [] request) 
+        {
+            try 
+            {
+                SellerListingLookupResponse response = service.SellerListingLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        SellerListingLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<SellerListings> sellerListingsList = response.SellerListings;
+                foreach (SellerListings sellerListings in sellerListingsList) 
+                {
+                    Console.WriteLine("            SellerListings");
+                    if (sellerListings.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", sellerListings.TotalResults);
+                    }
+                    if (sellerListings.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", sellerListings.TotalPages);
+                    }
+                    List<SellerListing> sellerListingList = sellerListings.SellerListing;
+                    foreach (SellerListing sellerListing in sellerListingList) 
+                    {
+                        Console.WriteLine("                SellerListing");
+                        if (sellerListing.IsSetExchangeId()) 
+                        {
+                            Console.WriteLine("                    ExchangeId");
+                            Console.WriteLine("                        {0}", sellerListing.ExchangeId);
+                        }
+                        if (sellerListing.IsSetListingId()) 
+                        {
+                            Console.WriteLine("                    ListingId");
+                            Console.WriteLine("                        {0}", sellerListing.ListingId);
+                        }
+                        if (sellerListing.IsSetASIN()) 
+                        {
+                            Console.WriteLine("                    ASIN");
+                            Console.WriteLine("                        {0}", sellerListing.ASIN);
+                        }
+                        if (sellerListing.IsSetSKU()) 
+                        {
+                            Console.WriteLine("                    SKU");
+                            Console.WriteLine("                        {0}", sellerListing.SKU);
+                        }
+                        if (sellerListing.IsSetUPC()) 
+                        {
+                            Console.WriteLine("                    UPC");
+                            Console.WriteLine("                        {0}", sellerListing.UPC);
+                        }
+                        if (sellerListing.IsSetEAN()) 
+                        {
+                            Console.WriteLine("                    EAN");
+                            Console.WriteLine("                        {0}", sellerListing.EAN);
+                        }
+                        if (sellerListing.IsSetWillShipExpedited()) 
+                        {
+                            Console.WriteLine("                    WillShipExpedited");
+                            Console.WriteLine("                        {0}", sellerListing.WillShipExpedited);
+                        }
+                        if (sellerListing.IsSetWillShipInternational()) 
+                        {
+                            Console.WriteLine("                    WillShipInternational");
+                            Console.WriteLine("                        {0}", sellerListing.WillShipInternational);
+                        }
+                        if (sellerListing.IsSetTitle()) 
+                        {
+                            Console.WriteLine("                    Title");
+                            Console.WriteLine("                        {0}", sellerListing.Title);
+                        }
+                        if (sellerListing.IsSetPrice()) 
+                        {
+                            Console.WriteLine("                    Price");
+                            Price  price = sellerListing.Price;
+                            if (price.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", price.Amount);
+                            }
+                            if (price.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", price.CurrencyCode);
+                            }
+                            if (price.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", price.FormattedPrice);
+                            }
+                        } 
+                        if (sellerListing.IsSetStartDate()) 
+                        {
+                            Console.WriteLine("                    StartDate");
+                            Console.WriteLine("                        {0}", sellerListing.StartDate);
+                        }
+                        if (sellerListing.IsSetEndDate()) 
+                        {
+                            Console.WriteLine("                    EndDate");
+                            Console.WriteLine("                        {0}", sellerListing.EndDate);
+                        }
+                        if (sellerListing.IsSetStatus()) 
+                        {
+                            Console.WriteLine("                    Status");
+                            Console.WriteLine("                        {0}", sellerListing.Status);
+                        }
+                        if (sellerListing.IsSetQuantity()) 
+                        {
+                            Console.WriteLine("                    Quantity");
+                            Console.WriteLine("                        {0}", sellerListing.Quantity);
+                        }
+                        if (sellerListing.IsSetCondition()) 
+                        {
+                            Console.WriteLine("                    Condition");
+                            Console.WriteLine("                        {0}", sellerListing.Condition);
+                        }
+                        if (sellerListing.IsSetSubCondition()) 
+                        {
+                            Console.WriteLine("                    SubCondition");
+                            Console.WriteLine("                        {0}", sellerListing.SubCondition);
+                        }
+                        if (sellerListing.IsSetSeller()) 
+                        {
+                            Console.WriteLine("                    Seller");
+                            Seller  seller = sellerListing.Seller;
+                            if (seller.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", seller.SellerId);
+                            }
+                            if (seller.IsSetSellerName()) 
+                            {
+                                Console.WriteLine("                        SellerName");
+                                Console.WriteLine("                            {0}", seller.SellerName);
+                            }
+                            if (seller.IsSetSellerLegalName()) 
+                            {
+                                Console.WriteLine("                        SellerLegalName");
+                                Console.WriteLine("                            {0}", seller.SellerLegalName);
+                            }
+                            if (seller.IsSetNickname()) 
+                            {
+                                Console.WriteLine("                        Nickname");
+                                Console.WriteLine("                            {0}", seller.Nickname);
+                            }
+                            if (seller.IsSetGlancePage()) 
+                            {
+                                Console.WriteLine("                        GlancePage");
+                                Console.WriteLine("                            {0}", seller.GlancePage);
+                            }
+                            if (seller.IsSetAbout()) 
+                            {
+                                Console.WriteLine("                        About");
+                                Console.WriteLine("                            {0}", seller.About);
+                            }
+                            if (seller.IsSetMoreAbout()) 
+                            {
+                                Console.WriteLine("                        MoreAbout");
+                                Console.WriteLine("                            {0}", seller.MoreAbout);
+                            }
+                            if (seller.IsSetLocation()) 
+                            {
+                                Console.WriteLine("                        Location");
+                                SellerLocation  location = seller.Location;
+                                if (location.IsSetUserDefinedLocation()) 
+                                {
+                                    Console.WriteLine("                            UserDefinedLocation");
+                                    Console.WriteLine("                                {0}", location.UserDefinedLocation);
+                                }
+                                if (location.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", location.City);
+                                }
+                                if (location.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", location.State);
+                                }
+                                if (location.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", location.Country);
+                                }
+                            } 
+                            if (seller.IsSetAverageFeedbackRating()) 
+                            {
+                                Console.WriteLine("                        AverageFeedbackRating");
+                                Console.WriteLine("                            {0}", seller.AverageFeedbackRating);
+                            }
+                            if (seller.IsSetTotalFeedback()) 
+                            {
+                                Console.WriteLine("                        TotalFeedback");
+                                Console.WriteLine("                            {0}", seller.TotalFeedback);
+                            }
+                            if (seller.IsSetTotalFeedbackPages()) 
+                            {
+                                Console.WriteLine("                        TotalFeedbackPages");
+                                Console.WriteLine("                            {0}", seller.TotalFeedbackPages);
+                            }
+                            if (seller.IsSetSellerFeedbackSummary()) 
+                            {
+                                Console.WriteLine("                        SellerFeedbackSummary");
+                                SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                {
+                                    Console.WriteLine("                            FeedbackDateRange");
+                                    List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                    foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedbackRating");
+                                        if (sellerFeedbackRating.IsSetCount()) 
+                                        {
+                                            Console.WriteLine("                                    Count");
+                                            Console.WriteLine("                                        {0}", sellerFeedbackRating.Count);
+                                        }
+                                        if (sellerFeedbackRating.IsSetPercentage()) 
+                                        {
+                                            Console.WriteLine("                                    Percentage");
+                                            Console.WriteLine("                                        {0}", sellerFeedbackRating.Percentage);
+                                        }
+                                    }
+                                }
+                            } 
+                            if (seller.IsSetSellerFeedback()) 
+                            {
+                                Console.WriteLine("                        SellerFeedback");
+                                SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                foreach (Feedback feedback in feedbackList) 
+                                {
+                                    Console.WriteLine("                            Feedback");
+                                    if (feedback.IsSetRating()) 
+                                    {
+                                        Console.WriteLine("                                Rating");
+                                        Console.WriteLine("                                    {0}", feedback.Rating);
+                                    }
+                                    if (feedback.IsSetComment()) 
+                                    {
+                                        Console.WriteLine("                                Comment");
+                                        Console.WriteLine("                                    {0}", feedback.Comment);
+                                    }
+                                    if (feedback.IsSetDate()) 
+                                    {
+                                        Console.WriteLine("                                Date");
+                                        Console.WriteLine("                                    {0}", feedback.Date);
+                                    }
+                                    if (feedback.IsSetRatedBy()) 
+                                    {
+                                        Console.WriteLine("                                RatedBy");
+                                        Console.WriteLine("                                    {0}", feedback.RatedBy);
+                                    }
+                                }
+                            } 
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+            }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingSearchSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingSearchSample.cs
new file mode 100644
index 0000000..7fce73c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerListingSearchSample.cs
@@ -0,0 +1,365 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Seller Listing Search  Samples
+    /// </summary>
+    public class SellerListingSearchSample
+    {
+    
+                                                                                         
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The SellerListingSearch operation enables you to search for items offered
+        /// by specific sellers. You cannot use SellerListingSearch to look up items sold by merchants.
+        /// To look up an item sold by a merchant, use  ItemLookup   or  ItemSearch
+        /// along with the MerchantId parameter.
+        /// <p/>
+        /// SellerListingSearch returns the listing ID or exchange ID of an item.
+        /// Typically, you use those values with SellerListingLookup to find out more about those items.
+        /// <p/>
+        /// Each SellerListingSearch request returns up to ten items. By default, the first ten
+        /// items are returned. You can use the ListingPage parameter to retrieve additional pages
+        /// of (up to) ten listings.
+        /// <p/>
+        /// To use ECS, sellers must have less than 100,000 items for sale. Sellers that have more
+        /// items for sale should use, instead of ECS, other seller APIs, including the Amazon
+        /// Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">SellerListingSearch request</param>
+        public static void InvokeSellerListingSearch(AmazonECS service, params SellerListingSearchRequest [] request) 
+        {
+            try 
+            {
+                SellerListingSearchResponse response = service.SellerListingSearch(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        SellerListingSearchResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<SellerListings> sellerListingsList = response.SellerListings;
+                foreach (SellerListings sellerListings in sellerListingsList) 
+                {
+                    Console.WriteLine("            SellerListings");
+                    if (sellerListings.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", sellerListings.TotalResults);
+                    }
+                    if (sellerListings.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", sellerListings.TotalPages);
+                    }
+                    List<SellerListing> sellerListingList = sellerListings.SellerListing;
+                    foreach (SellerListing sellerListing in sellerListingList) 
+                    {
+                        Console.WriteLine("                SellerListing");
+                        if (sellerListing.IsSetExchangeId()) 
+                        {
+                            Console.WriteLine("                    ExchangeId");
+                            Console.WriteLine("                        {0}", sellerListing.ExchangeId);
+                        }
+                        if (sellerListing.IsSetListingId()) 
+                        {
+                            Console.WriteLine("                    ListingId");
+                            Console.WriteLine("                        {0}", sellerListing.ListingId);
+                        }
+                        if (sellerListing.IsSetASIN()) 
+                        {
+                            Console.WriteLine("                    ASIN");
+                            Console.WriteLine("                        {0}", sellerListing.ASIN);
+                        }
+                        if (sellerListing.IsSetSKU()) 
+                        {
+                            Console.WriteLine("                    SKU");
+                            Console.WriteLine("                        {0}", sellerListing.SKU);
+                        }
+                        if (sellerListing.IsSetUPC()) 
+                        {
+                            Console.WriteLine("                    UPC");
+                            Console.WriteLine("                        {0}", sellerListing.UPC);
+                        }
+                        if (sellerListing.IsSetEAN()) 
+                        {
+                            Console.WriteLine("                    EAN");
+                            Console.WriteLine("                        {0}", sellerListing.EAN);
+                        }
+                        if (sellerListing.IsSetWillShipExpedited()) 
+                        {
+                            Console.WriteLine("                    WillShipExpedited");
+                            Console.WriteLine("                        {0}", sellerListing.WillShipExpedited);
+                        }
+                        if (sellerListing.IsSetWillShipInternational()) 
+                        {
+                            Console.WriteLine("                    WillShipInternational");
+                            Console.WriteLine("                        {0}", sellerListing.WillShipInternational);
+                        }
+                        if (sellerListing.IsSetTitle()) 
+                        {
+                            Console.WriteLine("                    Title");
+                            Console.WriteLine("                        {0}", sellerListing.Title);
+                        }
+                        if (sellerListing.IsSetPrice()) 
+                        {
+                            Console.WriteLine("                    Price");
+                            Price  price = sellerListing.Price;
+                            if (price.IsSetAmount()) 
+                            {
+                                Console.WriteLine("                        Amount");
+                                Console.WriteLine("                            {0}", price.Amount);
+                            }
+                            if (price.IsSetCurrencyCode()) 
+                            {
+                                Console.WriteLine("                        CurrencyCode");
+                                Console.WriteLine("                            {0}", price.CurrencyCode);
+                            }
+                            if (price.IsSetFormattedPrice()) 
+                            {
+                                Console.WriteLine("                        FormattedPrice");
+                                Console.WriteLine("                            {0}", price.FormattedPrice);
+                            }
+                        } 
+                        if (sellerListing.IsSetStartDate()) 
+                        {
+                            Console.WriteLine("                    StartDate");
+                            Console.WriteLine("                        {0}", sellerListing.StartDate);
+                        }
+                        if (sellerListing.IsSetEndDate()) 
+                        {
+                            Console.WriteLine("                    EndDate");
+                            Console.WriteLine("                        {0}", sellerListing.EndDate);
+                        }
+                        if (sellerListing.IsSetStatus()) 
+                        {
+                            Console.WriteLine("                    Status");
+                            Console.WriteLine("                        {0}", sellerListing.Status);
+                        }
+                        if (sellerListing.IsSetQuantity()) 
+                        {
+                            Console.WriteLine("                    Quantity");
+                            Console.WriteLine("                        {0}", sellerListing.Quantity);
+                        }
+                        if (sellerListing.IsSetCondition()) 
+                        {
+                            Console.WriteLine("                    Condition");
+                            Console.WriteLine("                        {0}", sellerListing.Condition);
+                        }
+                        if (sellerListing.IsSetSubCondition()) 
+                        {
+                            Console.WriteLine("                    SubCondition");
+                            Console.WriteLine("                        {0}", sellerListing.SubCondition);
+                        }
+                        if (sellerListing.IsSetSeller()) 
+                        {
+                            Console.WriteLine("                    Seller");
+                            Seller  seller = sellerListing.Seller;
+                            if (seller.IsSetSellerId()) 
+                            {
+                                Console.WriteLine("                        SellerId");
+                                Console.WriteLine("                            {0}", seller.SellerId);
+                            }
+                            if (seller.IsSetSellerName()) 
+                            {
+                                Console.WriteLine("                        SellerName");
+                                Console.WriteLine("                            {0}", seller.SellerName);
+                            }
+                            if (seller.IsSetSellerLegalName()) 
+                            {
+                                Console.WriteLine("                        SellerLegalName");
+                                Console.WriteLine("                            {0}", seller.SellerLegalName);
+                            }
+                            if (seller.IsSetNickname()) 
+                            {
+                                Console.WriteLine("                        Nickname");
+                                Console.WriteLine("                            {0}", seller.Nickname);
+                            }
+                            if (seller.IsSetGlancePage()) 
+                            {
+                                Console.WriteLine("                        GlancePage");
+                                Console.WriteLine("                            {0}", seller.GlancePage);
+                            }
+                            if (seller.IsSetAbout()) 
+                            {
+                                Console.WriteLine("                        About");
+                                Console.WriteLine("                            {0}", seller.About);
+                            }
+                            if (seller.IsSetMoreAbout()) 
+                            {
+                                Console.WriteLine("                        MoreAbout");
+                                Console.WriteLine("                            {0}", seller.MoreAbout);
+                            }
+                            if (seller.IsSetLocation()) 
+                            {
+                                Console.WriteLine("                        Location");
+                                SellerLocation  location = seller.Location;
+                                if (location.IsSetUserDefinedLocation()) 
+                                {
+                                    Console.WriteLine("                            UserDefinedLocation");
+                                    Console.WriteLine("                                {0}", location.UserDefinedLocation);
+                                }
+                                if (location.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", location.City);
+                                }
+                                if (location.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", location.State);
+                                }
+                                if (location.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", location.Country);
+                                }
+                            } 
+                            if (seller.IsSetAverageFeedbackRating()) 
+                            {
+                                Console.WriteLine("                        AverageFeedbackRating");
+                                Console.WriteLine("                            {0}", seller.AverageFeedbackRating);
+                            }
+                            if (seller.IsSetTotalFeedback()) 
+                            {
+                                Console.WriteLine("                        TotalFeedback");
+                                Console.WriteLine("                            {0}", seller.TotalFeedback);
+                            }
+                            if (seller.IsSetTotalFeedbackPages()) 
+                            {
+                                Console.WriteLine("                        TotalFeedbackPages");
+                                Console.WriteLine("                            {0}", seller.TotalFeedbackPages);
+                            }
+                            if (seller.IsSetSellerFeedbackSummary()) 
+                            {
+                                Console.WriteLine("                        SellerFeedbackSummary");
+                                SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                {
+                                    Console.WriteLine("                            FeedbackDateRange");
+                                    List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                    foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedbackRating");
+                                        if (sellerFeedbackRating.IsSetCount()) 
+                                        {
+                                            Console.WriteLine("                                    Count");
+                                            Console.WriteLine("                                        {0}", sellerFeedbackRating.Count);
+                                        }
+                                        if (sellerFeedbackRating.IsSetPercentage()) 
+                                        {
+                                            Console.WriteLine("                                    Percentage");
+                                            Console.WriteLine("                                        {0}", sellerFeedbackRating.Percentage);
+                                        }
+                                    }
+                                }
+                            } 
+                            if (seller.IsSetSellerFeedback()) 
+                            {
+                                Console.WriteLine("                        SellerFeedback");
+                                SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                foreach (Feedback feedback in feedbackList) 
+                                {
+                                    Console.WriteLine("                            Feedback");
+                                    if (feedback.IsSetRating()) 
+                                    {
+                                        Console.WriteLine("                                Rating");
+                                        Console.WriteLine("                                    {0}", feedback.Rating);
+                                    }
+                                    if (feedback.IsSetComment()) 
+                                    {
+                                        Console.WriteLine("                                Comment");
+                                        Console.WriteLine("                                    {0}", feedback.Comment);
+                                    }
+                                    if (feedback.IsSetDate()) 
+                                    {
+                                        Console.WriteLine("                                Date");
+                                        Console.WriteLine("                                    {0}", feedback.Date);
+                                    }
+                                    if (feedback.IsSetRatedBy()) 
+                                    {
+                                        Console.WriteLine("                                RatedBy");
+                                        Console.WriteLine("                                    {0}", feedback.RatedBy);
+                                    }
+                                }
+                            } 
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerLookupSample.cs
new file mode 100644
index 0000000..c5e1de1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SellerLookupSample.cs
@@ -0,0 +1,255 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Seller Lookup  Samples
+    /// </summary>
+    public class SellerLookupSample
+    {
+    
+                                                             
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The SellerLookup operation returns detailed information about sellers and,
+        /// in the US locale, merchants. To lookup a seller, you must use their seller ID.
+        /// The information returned includes the seller's name, location, average rating by
+        /// customers, and the first five customer feedback entries. SellerLookup will not,
+        /// however, return the seller's Email or business addresses.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Seller</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">SellerLookup request</param>
+        public static void InvokeSellerLookup(AmazonECS service, params SellerLookupRequest [] request) 
+        {
+            try 
+            {
+                SellerLookupResponse response = service.SellerLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        SellerLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Sellers> sellersList = response.Sellers;
+                foreach (Sellers sellers in sellersList) 
+                {
+                    Console.WriteLine("            Sellers");
+                    if (sellers.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", sellers.TotalResults);
+                    }
+                    if (sellers.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", sellers.TotalPages);
+                    }
+                    List<Seller> sellerList = sellers.Seller;
+                    foreach (Seller seller in sellerList) 
+                    {
+                        Console.WriteLine("                Seller");
+                        if (seller.IsSetSellerId()) 
+                        {
+                            Console.WriteLine("                    SellerId");
+                            Console.WriteLine("                        {0}", seller.SellerId);
+                        }
+                        if (seller.IsSetSellerName()) 
+                        {
+                            Console.WriteLine("                    SellerName");
+                            Console.WriteLine("                        {0}", seller.SellerName);
+                        }
+                        if (seller.IsSetSellerLegalName()) 
+                        {
+                            Console.WriteLine("                    SellerLegalName");
+                            Console.WriteLine("                        {0}", seller.SellerLegalName);
+                        }
+                        if (seller.IsSetNickname()) 
+                        {
+                            Console.WriteLine("                    Nickname");
+                            Console.WriteLine("                        {0}", seller.Nickname);
+                        }
+                        if (seller.IsSetGlancePage()) 
+                        {
+                            Console.WriteLine("                    GlancePage");
+                            Console.WriteLine("                        {0}", seller.GlancePage);
+                        }
+                        if (seller.IsSetAbout()) 
+                        {
+                            Console.WriteLine("                    About");
+                            Console.WriteLine("                        {0}", seller.About);
+                        }
+                        if (seller.IsSetMoreAbout()) 
+                        {
+                            Console.WriteLine("                    MoreAbout");
+                            Console.WriteLine("                        {0}", seller.MoreAbout);
+                        }
+                        if (seller.IsSetLocation()) 
+                        {
+                            Console.WriteLine("                    Location");
+                            SellerLocation  location = seller.Location;
+                            if (location.IsSetUserDefinedLocation()) 
+                            {
+                                Console.WriteLine("                        UserDefinedLocation");
+                                Console.WriteLine("                            {0}", location.UserDefinedLocation);
+                            }
+                            if (location.IsSetCity()) 
+                            {
+                                Console.WriteLine("                        City");
+                                Console.WriteLine("                            {0}", location.City);
+                            }
+                            if (location.IsSetState()) 
+                            {
+                                Console.WriteLine("                        State");
+                                Console.WriteLine("                            {0}", location.State);
+                            }
+                            if (location.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", location.Country);
+                            }
+                        } 
+                        if (seller.IsSetAverageFeedbackRating()) 
+                        {
+                            Console.WriteLine("                    AverageFeedbackRating");
+                            Console.WriteLine("                        {0}", seller.AverageFeedbackRating);
+                        }
+                        if (seller.IsSetTotalFeedback()) 
+                        {
+                            Console.WriteLine("                    TotalFeedback");
+                            Console.WriteLine("                        {0}", seller.TotalFeedback);
+                        }
+                        if (seller.IsSetTotalFeedbackPages()) 
+                        {
+                            Console.WriteLine("                    TotalFeedbackPages");
+                            Console.WriteLine("                        {0}", seller.TotalFeedbackPages);
+                        }
+                        if (seller.IsSetSellerFeedbackSummary()) 
+                        {
+                            Console.WriteLine("                    SellerFeedbackSummary");
+                            SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                            List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                            foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                            {
+                                Console.WriteLine("                        FeedbackDateRange");
+                                List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                {
+                                    Console.WriteLine("                            SellerFeedbackRating");
+                                    if (sellerFeedbackRating.IsSetCount()) 
+                                    {
+                                        Console.WriteLine("                                Count");
+                                        Console.WriteLine("                                    {0}", sellerFeedbackRating.Count);
+                                    }
+                                    if (sellerFeedbackRating.IsSetPercentage()) 
+                                    {
+                                        Console.WriteLine("                                Percentage");
+                                        Console.WriteLine("                                    {0}", sellerFeedbackRating.Percentage);
+                                    }
+                                }
+                            }
+                        } 
+                        if (seller.IsSetSellerFeedback()) 
+                        {
+                            Console.WriteLine("                    SellerFeedback");
+                            SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                            List<Feedback> feedbackList = sellerFeedback.Feedback;
+                            foreach (Feedback feedback in feedbackList) 
+                            {
+                                Console.WriteLine("                        Feedback");
+                                if (feedback.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", feedback.Rating);
+                                }
+                                if (feedback.IsSetComment()) 
+                                {
+                                    Console.WriteLine("                            Comment");
+                                    Console.WriteLine("                                {0}", feedback.Comment);
+                                }
+                                if (feedback.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", feedback.Date);
+                                }
+                                if (feedback.IsSetRatedBy()) 
+                                {
+                                    Console.WriteLine("                            RatedBy");
+                                    Console.WriteLine("                                {0}", feedback.RatedBy);
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                            }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SimilarityLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SimilarityLookupSample.cs
new file mode 100644
index 0000000..6d9ad64
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/SimilarityLookupSample.cs
@@ -0,0 +1,5123 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Similarity Lookup  Samples
+    /// </summary>
+    public class SimilarityLookupSample
+    {
+    
+                                                         
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The SimilarityLookup operation returns up to ten products per page that are
+        /// similar to one or more items specified in the request. This operation is
+        /// typically used to pique a customer's interest in buying something similar to what they've already ordered.
+        /// <p/>
+        /// If you specify more than one item, SimilarityLookup returns the intersection of similar
+        /// items each item would return separately. Alternatively, you can use the SimilarityType
+        /// parameter to return the union of items that are similar to any of the specified items.
+        /// A maximum of ten similar items are returned; the operation does not return additional
+        /// pages of similar items. if there are more than ten similar items, running the same
+        /// request can result in different answers because the ten that are included in the
+        /// response are picked randomly.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>Large</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">SimilarityLookup request</param>
+        public static void InvokeSimilarityLookup(AmazonECS service, params SimilarityLookupRequest [] request) 
+        {
+            try 
+            {
+                SimilarityLookupResponse response = service.SimilarityLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        SimilarityLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Items> itemsList = response.Items;
+                foreach (Items items in itemsList) 
+                {
+                    Console.WriteLine("            Items");
+                    if (items.IsSetCorrectedQuery()) 
+                    {
+                        Console.WriteLine("                CorrectedQuery");
+                        CorrectedQuery  correctedQuery = items.CorrectedQuery;
+                        if (correctedQuery.IsSetKeywords()) 
+                        {
+                            Console.WriteLine("                    Keywords");
+                            Console.WriteLine("                        {0}", correctedQuery.Keywords);
+                        }
+                        if (correctedQuery.IsSetMessage()) 
+                        {
+                            Console.WriteLine("                    Message");
+                            Console.WriteLine("                        {0}", correctedQuery.Message);
+                        }
+                    } 
+                    if (items.IsSetQid()) 
+                    {
+                        Console.WriteLine("                Qid");
+                        Console.WriteLine("                    {0}", items.Qid);
+                    }
+                    if (items.IsSetEngineQuery()) 
+                    {
+                        Console.WriteLine("                EngineQuery");
+                        Console.WriteLine("                    {0}", items.EngineQuery);
+                    }
+                    if (items.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", items.TotalResults);
+                    }
+                    if (items.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", items.TotalPages);
+                    }
+                    if (items.IsSetSearchResultsMap()) 
+                    {
+                        Console.WriteLine("                SearchResultsMap");
+                        SearchResultsMap  searchResultsMap = items.SearchResultsMap;
+                        List<SearchResultsMapSearchIndex> searchIndexList = searchResultsMap.SearchIndex;
+                        foreach (SearchResultsMapSearchIndex searchIndex in searchIndexList) 
+                        {
+                            Console.WriteLine("                    SearchIndex");
+                            if (searchIndex.IsSetIndexName()) 
+                            {
+                                Console.WriteLine("                        IndexName");
+                                Console.WriteLine("                            {0}", searchIndex.IndexName);
+                            }
+                            if (searchIndex.IsSetResults()) 
+                            {
+                                Console.WriteLine("                        Results");
+                                Console.WriteLine("                            {0}", searchIndex.Results);
+                            }
+                            if (searchIndex.IsSetPages()) 
+                            {
+                                Console.WriteLine("                        Pages");
+                                Console.WriteLine("                            {0}", searchIndex.Pages);
+                            }
+                            if (searchIndex.IsSetCorrectedQuery()) 
+                            {
+                                Console.WriteLine("                        CorrectedQuery");
+                                CorrectedQuery  correctedQuery = searchIndex.CorrectedQuery;
+                                if (correctedQuery.IsSetKeywords()) 
+                                {
+                                    Console.WriteLine("                            Keywords");
+                                    Console.WriteLine("                                {0}", correctedQuery.Keywords);
+                                }
+                                if (correctedQuery.IsSetMessage()) 
+                                {
+                                    Console.WriteLine("                            Message");
+                                    Console.WriteLine("                                {0}", correctedQuery.Message);
+                                }
+                            } 
+                            if (searchIndex.IsSetRelevanceRank()) 
+                            {
+                                Console.WriteLine("                        RelevanceRank");
+                                Console.WriteLine("                            {0}", searchIndex.RelevanceRank);
+                            }
+                            List<String> ASINList  =  searchIndex.ASIN;
+                            foreach (String ASIN in ASINList) 
+                            { 
+                                Console.WriteLine("                        ASIN");
+                                Console.WriteLine("                            {0}", ASIN);
+                            }	
+                        }
+                    } 
+                    List<Item> itemList = items.Item;
+                    foreach (Item item in itemList) 
+                    {
+                        Console.WriteLine("                Item");
+                        if (item.IsSetAlternateVersions()) 
+                        {
+                            Console.WriteLine("                    AlternateVersions");
+                            AlternateVersions  alternateVersions = item.AlternateVersions;
+                            List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                            foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                            {
+                                Console.WriteLine("                        AlternateVersion");
+                                if (alternateVersion.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", alternateVersion.ASIN);
+                                }
+                                if (alternateVersion.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", alternateVersion.Title);
+                                }
+                                if (alternateVersion.IsSetBinding()) 
+                                {
+                                    Console.WriteLine("                            Binding");
+                                    Console.WriteLine("                                {0}", alternateVersion.Binding);
+                                }
+                            }
+                        } 
+                        if (item.IsSetASIN()) 
+                        {
+                            Console.WriteLine("                    ASIN");
+                            Console.WriteLine("                        {0}", item.ASIN);
+                        }
+                        if (item.IsSetParentASIN()) 
+                        {
+                            Console.WriteLine("                    ParentASIN");
+                            Console.WriteLine("                        {0}", item.ParentASIN);
+                        }
+                        if (item.IsSetDetailPageURL()) 
+                        {
+                            Console.WriteLine("                    DetailPageURL");
+                            Console.WriteLine("                        {0}", item.DetailPageURL);
+                        }
+                        if (item.IsSetSalesRank()) 
+                        {
+                            Console.WriteLine("                    SalesRank");
+                            Console.WriteLine("                        {0}", item.SalesRank);
+                        }
+                        if (item.IsSetSmallImage()) 
+                        {
+                            Console.WriteLine("                    SmallImage");
+                            Image  smallImage = item.SmallImage;
+                            if (smallImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", smallImage.URL);
+                            }
+                            if (smallImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = smallImage.Height;
+                            } 
+                            if (smallImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = smallImage.Width;
+                            } 
+                            if (smallImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", smallImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetMediumImage()) 
+                        {
+                            Console.WriteLine("                    MediumImage");
+                            Image  mediumImage = item.MediumImage;
+                            if (mediumImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", mediumImage.URL);
+                            }
+                            if (mediumImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = mediumImage.Height;
+                            } 
+                            if (mediumImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = mediumImage.Width;
+                            } 
+                            if (mediumImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", mediumImage.IsVerified);
+                            }
+                        } 
+                        if (item.IsSetLargeImage()) 
+                        {
+                            Console.WriteLine("                    LargeImage");
+                            Image  largeImage = item.LargeImage;
+                            if (largeImage.IsSetURL()) 
+                            {
+                                Console.WriteLine("                        URL");
+                                Console.WriteLine("                            {0}", largeImage.URL);
+                            }
+                            if (largeImage.IsSetHeight()) 
+                            {
+                                Console.WriteLine("                        Height");
+                                DecimalWithUnits  height = largeImage.Height;
+                            } 
+                            if (largeImage.IsSetWidth()) 
+                            {
+                                Console.WriteLine("                        Width");
+                                DecimalWithUnits  width = largeImage.Width;
+                            } 
+                            if (largeImage.IsSetIsVerified()) 
+                            {
+                                Console.WriteLine("                        IsVerified");
+                                Console.WriteLine("                            {0}", largeImage.IsVerified);
+                            }
+                        } 
+                        List<ImageSets> imageSetsList = item.ImageSets;
+                        foreach (ImageSets imageSets in imageSetsList) 
+                        {
+                            Console.WriteLine("                    ImageSets");
+                            if (imageSets.IsSetMerchantId()) 
+                            {
+                                Console.WriteLine("                        MerchantId");
+                                Console.WriteLine("                            {0}", imageSets.MerchantId);
+                            }
+                            List<ImageSet> imageSetList = imageSets.ImageSet;
+                            foreach (ImageSet imageSet in imageSetList) 
+                            {
+                                Console.WriteLine("                        ImageSet");
+                                if (imageSet.IsSetSwatchImage()) 
+                                {
+                                    Console.WriteLine("                            SwatchImage");
+                                    Image  swatchImage = imageSet.SwatchImage;
+                                    if (swatchImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", swatchImage.URL);
+                                    }
+                                    if (swatchImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = swatchImage.Height;
+                                    } 
+                                    if (swatchImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = swatchImage.Width;
+                                    } 
+                                    if (swatchImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", swatchImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetSmallImage()) 
+                                {
+                                    Console.WriteLine("                            SmallImage");
+                                    Image  smallImage = imageSet.SmallImage;
+                                    if (smallImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", smallImage.URL);
+                                    }
+                                    if (smallImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = smallImage.Height;
+                                    } 
+                                    if (smallImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = smallImage.Width;
+                                    } 
+                                    if (smallImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", smallImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetThumbnailImage()) 
+                                {
+                                    Console.WriteLine("                            ThumbnailImage");
+                                    Image  thumbnailImage = imageSet.ThumbnailImage;
+                                    if (thumbnailImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.URL);
+                                    }
+                                    if (thumbnailImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = thumbnailImage.Height;
+                                    } 
+                                    if (thumbnailImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = thumbnailImage.Width;
+                                    } 
+                                    if (thumbnailImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", thumbnailImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetTinyImage()) 
+                                {
+                                    Console.WriteLine("                            TinyImage");
+                                    Image  tinyImage = imageSet.TinyImage;
+                                    if (tinyImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", tinyImage.URL);
+                                    }
+                                    if (tinyImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = tinyImage.Height;
+                                    } 
+                                    if (tinyImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = tinyImage.Width;
+                                    } 
+                                    if (tinyImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", tinyImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetMediumImage()) 
+                                {
+                                    Console.WriteLine("                            MediumImage");
+                                    Image  mediumImage = imageSet.MediumImage;
+                                    if (mediumImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", mediumImage.URL);
+                                    }
+                                    if (mediumImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = mediumImage.Height;
+                                    } 
+                                    if (mediumImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = mediumImage.Width;
+                                    } 
+                                    if (mediumImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", mediumImage.IsVerified);
+                                    }
+                                } 
+                                if (imageSet.IsSetLargeImage()) 
+                                {
+                                    Console.WriteLine("                            LargeImage");
+                                    Image  largeImage = imageSet.LargeImage;
+                                    if (largeImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", largeImage.URL);
+                                    }
+                                    if (largeImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = largeImage.Height;
+                                    } 
+                                    if (largeImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = largeImage.Width;
+                                    } 
+                                    if (largeImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", largeImage.IsVerified);
+                                    }
+                                } 
+                            }
+                        }
+                        if (item.IsSetItemAttributes()) 
+                        {
+                            Console.WriteLine("                    ItemAttributes");
+                            ItemAttributes  itemAttributes = item.ItemAttributes;
+                            List<String> actorList  =  itemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (itemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = itemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            List<String> ageList  =  itemAttributes.Age;
+                            foreach (String age in ageList) 
+                            { 
+                                Console.WriteLine("                        Age");
+                                Console.WriteLine("                            {0}", age);
+                            }	
+                            if (itemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetAnalogVideoFormat()) 
+                            {
+                                Console.WriteLine("                        AnalogVideoFormat");
+                                Console.WriteLine("                            {0}", itemAttributes.AnalogVideoFormat);
+                            }
+                            if (itemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  itemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (itemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", itemAttributes.AspectRatio);
+                            }
+                            if (itemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyInstructions);
+                            }
+                            if (itemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.AssemblyRequired);
+                            }
+                            if (itemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  itemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (itemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", itemAttributes.BackFinding);
+                            }
+                            if (itemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BandMaterialType);
+                            }
+                            if (itemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesIncluded);
+                            }
+                            if (itemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteriesRequired);
+                            }
+                            if (itemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                            } 
+                            if (itemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryDescription);
+                            }
+                            if (itemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", itemAttributes.BatteryType);
+                            }
+                            if (itemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.BezelMaterialType);
+                            }
+                            if (itemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", itemAttributes.Binding);
+                            }
+                            if (itemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", itemAttributes.Brand);
+                            }
+                            if (itemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", itemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (itemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                            } 
+                            if (itemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseMaterialType);
+                            }
+                            if (itemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                            } 
+                            if (itemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", itemAttributes.CaseType);
+                            }
+                            if (itemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.CatalogNumber);
+                            }
+                            List<String> categoryList  =  itemAttributes.Category;
+                            foreach (String category in categoryList) 
+                            { 
+                                Console.WriteLine("                        Category");
+                                Console.WriteLine("                            {0}", category);
+                            }	
+                            List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                            foreach (String categoryBin in categoryBinList) 
+                            { 
+                                Console.WriteLine("                        CategoryBin");
+                                Console.WriteLine("                            {0}", categoryBin);
+                            }	
+                            if (itemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.CDRWDescription);
+                            }
+                            if (itemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", itemAttributes.ChainType);
+                            }
+                            List<String> characterList  =  itemAttributes.Character;
+                            foreach (String character in characterList) 
+                            { 
+                                Console.WriteLine("                        Character");
+                                Console.WriteLine("                            {0}", character);
+                            }	
+                            if (itemAttributes.IsSetCEROAgeRating()) 
+                            {
+                                Console.WriteLine("                        CEROAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.CEROAgeRating);
+                            }
+                            if (itemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClaspType);
+                            }
+                            if (itemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.ClothingSize);
+                            }
+                            if (itemAttributes.IsSetClubType()) 
+                            {
+                                Console.WriteLine("                        ClubType");
+                                Console.WriteLine("                            {0}", itemAttributes.ClubType);
+                            }
+                            if (itemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", itemAttributes.Color);
+                            }
+                            if (itemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", itemAttributes.Compatibility);
+                            }
+                            List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                            foreach (String compatibleDevices in compatibleDevicesList) 
+                            { 
+                                Console.WriteLine("                        CompatibleDevices");
+                                Console.WriteLine("                            {0}", compatibleDevices);
+                            }	
+                            if (itemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerHardwareType);
+                            }
+                            if (itemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.ComputerPlatform);
+                            }
+                            if (itemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", itemAttributes.Connectivity);
+                            }
+                            if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (itemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", itemAttributes.Country);
+                            }
+                            if (itemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUManufacturer);
+                            }
+                            if (itemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                            } 
+                            if (itemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", itemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = itemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (itemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", itemAttributes.Cuisine);
+                            }
+                            List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                            foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                            { 
+                                Console.WriteLine("                        DataLinkProtocol");
+                                Console.WriteLine("                            {0}", dataLinkProtocol);
+                            }	
+                            if (itemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", itemAttributes.DeliveryOption);
+                            }
+                            if (itemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                            } 
+                            if (itemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", itemAttributes.Department);
+                            }
+                            if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.DeweyDecimalNumber);
+                            }
+                            if (itemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", itemAttributes.DialColor);
+                            }
+                            if (itemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.DialWindowMaterialType);
+                            }
+                            if (itemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  itemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (itemAttributes.IsSetDisplayColorSupport()) 
+                            {
+                                Console.WriteLine("                        DisplayColorSupport");
+                                Console.WriteLine("                            {0}", itemAttributes.DisplayColorSupport);
+                            }
+                            if (itemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                            } 
+                            if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (itemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDLayers);
+                            }
+                            if (itemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDRWDescription);
+                            }
+                            if (itemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", itemAttributes.DVDSides);
+                            }
+                            if (itemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", itemAttributes.DPCI);
+                            }
+                            if (itemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", itemAttributes.EAN);
+                            }
+                            if (itemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", itemAttributes.Edition);
+                            }
+                            List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                            foreach (String educationalFocus in educationalFocusList) 
+                            { 
+                                Console.WriteLine("                        EducationalFocus");
+                                Console.WriteLine("                            {0}", educationalFocus);
+                            }	
+                            List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                            foreach (String ethnicity in ethnicityList) 
+                            { 
+                                Console.WriteLine("                        Ethnicity");
+                                Console.WriteLine("                            {0}", ethnicity);
+                            }	
+                            if (itemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", itemAttributes.ESRBAgeRating);
+                            }
+                            if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (itemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", itemAttributes.FabricType);
+                            }
+                            if (itemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  itemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (itemAttributes.IsSetFilmColorType()) 
+                            {
+                                Console.WriteLine("                        FilmColorType");
+                                Console.WriteLine("                            {0}", itemAttributes.FilmColorType);
+                            }
+                            if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (itemAttributes.IsSetFlavorName()) 
+                            {
+                                Console.WriteLine("                        FlavorName");
+                                Console.WriteLine("                            {0}", itemAttributes.FlavorName);
+                            }
+                            if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  itemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            List<String> formFactorList  =  itemAttributes.FormFactor;
+                            foreach (String formFactor in formFactorList) 
+                            { 
+                                Console.WriteLine("                        FormFactor");
+                                Console.WriteLine("                            {0}", formFactor);
+                            }	
+                            if (itemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", itemAttributes.GemType);
+                            }
+                            List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                            foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        GemTypeSetElement");
+                                Console.WriteLine("                            {0}", gemTypeSetElement);
+                            }	
+                            List<String> genderList  =  itemAttributes.Gender;
+                            foreach (String gender in genderList) 
+                            { 
+                                Console.WriteLine("                        Gender");
+                                Console.WriteLine("                            {0}", gender);
+                            }	
+                            if (itemAttributes.IsSetGenre()) 
+                            {
+                                Console.WriteLine("                        Genre");
+                                Console.WriteLine("                            {0}", itemAttributes.Genre);
+                            }
+                            if (itemAttributes.IsSetGLProductGroup()) 
+                            {
+                                Console.WriteLine("                        GLProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.GLProductGroup);
+                            }
+                            if (itemAttributes.IsSetGolfClubFlex()) 
+                            {
+                                Console.WriteLine("                        GolfClubFlex");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubFlex);
+                            }
+                            if (itemAttributes.IsSetGolfClubLoft()) 
+                            {
+                                Console.WriteLine("                        GolfClubLoft");
+                                Console.WriteLine("                            {0}", itemAttributes.GolfClubLoft);
+                            }
+                            if (itemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsCardInterface);
+                            }
+                            if (itemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.GraphicsDescription);
+                            }
+                            if (itemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                            } 
+                            if (itemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarAttribute);
+                            }
+                            if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarBridgeSystem);
+                            }
+                            if (itemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickThickness);
+                            }
+                            if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", itemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (itemAttributes.IsSetHandOrientation()) 
+                            {
+                                Console.WriteLine("                        HandOrientation");
+                                Console.WriteLine("                            {0}", itemAttributes.HandOrientation);
+                            }
+                            if (itemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskCount);
+                            }
+                            if (itemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                            } 
+                            if (itemAttributes.IsSetHardDiskInterface()) 
+                            {
+                                Console.WriteLine("                        HardDiskInterface");
+                                Console.WriteLine("                            {0}", itemAttributes.HardDiskInterface);
+                            }
+                            if (itemAttributes.IsSetHardwarePlatform()) 
+                            {
+                                Console.WriteLine("                        HardwarePlatform");
+                                Console.WriteLine("                            {0}", itemAttributes.HardwarePlatform);
+                            }
+                            if (itemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", itemAttributes.HasAutoFocus);
+                            }
+                            if (itemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", itemAttributes.HasBurstMode);
+                            }
+                            if (itemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", itemAttributes.HasInCameraEditing);
+                            }
+                            if (itemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", itemAttributes.HasRedEyeReduction);
+                            }
+                            if (itemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", itemAttributes.HasSelfTimer);
+                            }
+                            if (itemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", itemAttributes.HasTripodMount);
+                            }
+                            if (itemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", itemAttributes.HasVideoOut);
+                            }
+                            if (itemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", itemAttributes.HasViewfinder);
+                            }
+                            if (itemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.HazardousMaterialType);
+                            }
+                            if (itemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", itemAttributes.HoursOfOperation);
+                            }
+                            if (itemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludedSoftware);
+                            }
+                            if (itemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", itemAttributes.IncludesMp3Player);
+                            }
+                            if (itemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", itemAttributes.Ingredients);
+                            }
+                            List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                            foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                            { 
+                                Console.WriteLine("                        IngredientsSetElement");
+                                Console.WriteLine("                            {0}", ingredientsSetElement);
+                            }	
+                            if (itemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", itemAttributes.InstrumentKey);
+                            }
+                            List<String> interestList  =  itemAttributes.Interest;
+                            foreach (String interest in interestList) 
+                            { 
+                                Console.WriteLine("                        Interest");
+                                Console.WriteLine("                            {0}", interest);
+                            }	
+                            if (itemAttributes.IsSetIsAdultProduct()) 
+                            {
+                                Console.WriteLine("                        IsAdultProduct");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAdultProduct);
+                            }
+                            if (itemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", itemAttributes.IsAutographed);
+                            }
+                            if (itemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", itemAttributes.ISBN);
+                            }
+                            if (itemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", itemAttributes.IsFragile);
+                            }
+                            if (itemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", itemAttributes.IsLabCreated);
+                            }
+                            if (itemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", itemAttributes.IsMemorabilia);
+                            }
+                            if (itemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                            } 
+                            if (itemAttributes.IsSetIsPreannounce()) 
+                            {
+                                Console.WriteLine("                        IsPreannounce");
+                                Console.WriteLine("                            {0}", itemAttributes.IsPreannounce);
+                            }
+                            if (itemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", itemAttributes.IssuesPerYear);
+                            }
+                            if (itemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.KeyboardDescription);
+                            }
+                            if (itemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", itemAttributes.Label);
+                            }
+                            List<String> languageNameList  =  itemAttributes.LanguageName;
+                            foreach (String languageName in languageNameList) 
+                            { 
+                                Console.WriteLine("                        LanguageName");
+                                Console.WriteLine("                            {0}", languageName);
+                            }	
+                            if (itemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = itemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (itemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", itemAttributes.LegalDisclaimer);
+                            }
+                            if (itemAttributes.IsSetLensType()) 
+                            {
+                                Console.WriteLine("                        LensType");
+                                Console.WriteLine("                            {0}", itemAttributes.LensType);
+                            }
+                            if (itemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", itemAttributes.LineVoltage);
+                            }
+                            if (itemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = itemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", itemAttributes.MacroFocusRange);
+                            }
+                            if (itemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", itemAttributes.MagazineType);
+                            }
+                            if (itemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", itemAttributes.MalletHardness);
+                            }
+                            if (itemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", itemAttributes.Manufacturer);
+                            }
+                            if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (itemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.MaterialType);
+                            }
+                            List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                            foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                            { 
+                                Console.WriteLine("                        MaterialTypeSetElement");
+                                Console.WriteLine("                            {0}", materialTypeSetElement);
+                            }	
+                            if (itemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                            } 
+                            if (itemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumColorDepth);
+                            }
+                            if (itemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", itemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (itemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (itemAttributes.IsSetMediaType()) 
+                            {
+                                Console.WriteLine("                        MediaType");
+                                Console.WriteLine("                            {0}", itemAttributes.MediaType);
+                            }
+                            if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", itemAttributes.MemorySlotsAvailable);
+                            }
+                            if (itemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalStamp);
+                            }
+                            if (itemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", itemAttributes.MetalType);
+                            }
+                            if (itemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MiniMovieDescription);
+                            }
+                            if (itemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                            } 
+                            if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (itemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", itemAttributes.Model);
+                            }
+                            if (itemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", itemAttributes.ModelYear);
+                            }
+                            if (itemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.ModemDescription);
+                            }
+                            if (itemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                            } 
+                            if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (itemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.MouseDescription);
+                            }
+                            if (itemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", itemAttributes.MPN);
+                            }
+                            if (itemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", itemAttributes.MusicalStyle);
+                            }
+                            if (itemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", itemAttributes.NativeResolution);
+                            }
+                            if (itemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", itemAttributes.Neighborhood);
+                            }
+                            if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (itemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfDiscs);
+                            }
+                            if (itemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfIssues);
+                            }
+                            if (itemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfItems);
+                            }
+                            if (itemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfKeys);
+                            }
+                            if (itemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPages);
+                            }
+                            if (itemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfPearls);
+                            }
+                            if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (itemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStones);
+                            }
+                            if (itemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfStrings);
+                            }
+                            if (itemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", itemAttributes.NumberOfTracks);
+                            }
+                            if (itemAttributes.IsSetOperatingSystem()) 
+                            {
+                                Console.WriteLine("                        OperatingSystem");
+                                Console.WriteLine("                            {0}", itemAttributes.OperatingSystem);
+                            }
+                            if (itemAttributes.IsSetOpticalSensorResolution()) 
+                            {
+                                Console.WriteLine("                        OpticalSensorResolution");
+                                DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                            } 
+                            if (itemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                            } 
+                            if (itemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.OriginalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", itemAttributes.OutputWattage);
+                            }
+                            if (itemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (itemAttributes.IsSetPackageQuantity()) 
+                            {
+                                Console.WriteLine("                        PackageQuantity");
+                                Console.WriteLine("                            {0}", itemAttributes.PackageQuantity);
+                            }
+                            List<String> pantLengthList  =  itemAttributes.PantLength;
+                            foreach (String pantLength in pantLengthList) 
+                            { 
+                                Console.WriteLine("                        PantLength");
+                                Console.WriteLine("                            {0}", pantLength);
+                            }	
+                            List<String> pantSizeList  =  itemAttributes.PantSize;
+                            foreach (String pantSize in pantSizeList) 
+                            { 
+                                Console.WriteLine("                        PantSize");
+                                Console.WriteLine("                            {0}", pantSize);
+                            }	
+                            if (itemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlLustre);
+                            }
+                            if (itemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlMinimumColor);
+                            }
+                            if (itemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlShape);
+                            }
+                            if (itemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlStringingMethod);
+                            }
+                            if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (itemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlType);
+                            }
+                            if (itemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", itemAttributes.PearlUniformity);
+                            }
+                            if (itemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", itemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  itemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (itemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", itemAttributes.PriceRating);
+                            }
+                            List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                            foreach (String primaryColor in primaryColorList) 
+                            { 
+                                Console.WriteLine("                        PrimaryColor");
+                                Console.WriteLine("                            {0}", primaryColor);
+                            }	
+                            if (itemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", itemAttributes.ProcessorCount);
+                            }
+                            if (itemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductGroup);
+                            }
+                            if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                            {
+                                Console.WriteLine("                        ProductSiteLaunchDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductSiteLaunchDate);
+                            }
+                            if (itemAttributes.IsSetProductTypeName()) 
+                            {
+                                Console.WriteLine("                        ProductTypeName");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeName);
+                            }
+                            if (itemAttributes.IsSetProductTypeSubcategory()) 
+                            {
+                                Console.WriteLine("                        ProductTypeSubcategory");
+                                Console.WriteLine("                            {0}", itemAttributes.ProductTypeSubcategory);
+                            }
+                            if (itemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", itemAttributes.PromotionalTag);
+                            }
+                            if (itemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", itemAttributes.PublicationDate);
+                            }
+                            if (itemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", itemAttributes.Publisher);
+                            }
+                            if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", itemAttributes.POBoxShippingExcluded);
+                            }
+                            if (itemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.ReadingLevel);
+                            }
+                            List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (itemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", itemAttributes.RecorderTrackCount);
+                            }
+                            if (itemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionCode);
+                            }
+                            if (itemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", itemAttributes.RegionOfOrigin);
+                            }
+                            if (itemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", itemAttributes.ReturnPolicy);
+                            }
+                            if (itemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.ReleaseDate);
+                            }
+                            if (itemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableMemory);
+                            }
+                            if (itemAttributes.IsSetRemovableStorage()) 
+                            {
+                                Console.WriteLine("                        RemovableStorage");
+                                Console.WriteLine("                            {0}", itemAttributes.RemovableStorage);
+                            }
+                            if (itemAttributes.IsSetRequiredVoltageRange()) 
+                            {
+                                Console.WriteLine("                        RequiredVoltageRange");
+                                Console.WriteLine("                            {0}", itemAttributes.RequiredVoltageRange);
+                            }
+                            if (itemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", itemAttributes.ResolutionModes);
+                            }
+                            if (itemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", itemAttributes.RingSize);
+                            }
+                            if (itemAttributes.IsSetRunningTime()) 
+                            {
+                                Console.WriteLine("                        RunningTime");
+                                DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                            } 
+                            if (itemAttributes.IsSetScentName()) 
+                            {
+                                Console.WriteLine("                        ScentName");
+                                Console.WriteLine("                            {0}", itemAttributes.ScentName);
+                            }
+                            if (itemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                            } 
+                            if (itemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", itemAttributes.SettingType);
+                            }
+                            if (itemAttributes.IsSetShaftMaterialType()) 
+                            {
+                                Console.WriteLine("                        ShaftMaterialType");
+                                Console.WriteLine("                            {0}", itemAttributes.ShaftMaterialType);
+                            }
+                            List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                            foreach (String shoeSize in shoeSizeList) 
+                            { 
+                                Console.WriteLine("                        ShoeSize");
+                                Console.WriteLine("                            {0}", shoeSize);
+                            }	
+                            if (itemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", itemAttributes.Size);
+                            }
+                            if (itemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", itemAttributes.SizePerPearl);
+                            }
+                            if (itemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", itemAttributes.SkillLevel);
+                            }
+                            if (itemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", itemAttributes.SKU);
+                            }
+                            if (itemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", itemAttributes.SoldInStores);
+                            }
+                            if (itemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SoundCardDescription);
+                            }
+                            if (itemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerCount);
+                            }
+                            if (itemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (itemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneClarity);
+                            }
+                            if (itemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneColor);
+                            }
+                            if (itemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneCut);
+                            }
+                            if (itemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", itemAttributes.StoneShape);
+                            }
+                            if (itemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                            } 
+                            if (itemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", itemAttributes.Studio);
+                            }
+                            if (itemAttributes.IsSetStyle()) 
+                            {
+                                Console.WriteLine("                        Style");
+                                Console.WriteLine("                            {0}", itemAttributes.Style);
+                            }
+                            if (itemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (itemAttributes.IsSetSupportedMediaSize()) 
+                            {
+                                Console.WriteLine("                        SupportedMediaSize");
+                                Console.WriteLine("                            {0}", itemAttributes.SupportedMediaSize);
+                            }
+                            if (itemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (itemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                            } 
+                            if (itemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", itemAttributes.SystemMemoryType);
+                            }
+                            List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                            foreach (String targetBrand in targetBrandList) 
+                            { 
+                                Console.WriteLine("                        TargetBrand");
+                                Console.WriteLine("                            {0}", targetBrand);
+                            }	
+                            if (itemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", itemAttributes.TellingPageIndicator);
+                            }
+                            if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", itemAttributes.TheatricalReleaseDate);
+                            }
+                            if (itemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", itemAttributes.Title);
+                            }
+                            if (itemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalExternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalFirewirePorts);
+                            }
+                            if (itemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalInternalBaysFree);
+                            }
+                            if (itemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                            } 
+                            if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (itemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalParallelPorts);
+                            }
+                            if (itemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCCardSlots);
+                            }
+                            if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalPCISlotsFree);
+                            }
+                            if (itemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSerialPorts);
+                            }
+                            if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (itemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSB2Ports);
+                            }
+                            if (itemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalUSBPorts);
+                            }
+                            if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", itemAttributes.TotalVGAOutPorts);
+                            }
+                            if (itemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", itemAttributes.UPC);
+                            }
+                            if (itemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDenomination);
+                            }
+                            if (itemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", itemAttributes.VariationDescription);
+                            }
+                            if (itemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", itemAttributes.Warranty);
+                            }
+                            if (itemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", itemAttributes.WatchMovementType);
+                            }
+                            if (itemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                            } 
+                            if (itemAttributes.IsSetWEEETaxValue()) 
+                            {
+                                Console.WriteLine("                        WEEETaxValue");
+                                Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                if (WEEETaxValue.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.Amount);
+                                }
+                                if (WEEETaxValue.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.CurrencyCode);
+                                }
+                                if (WEEETaxValue.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", WEEETaxValue.FormattedPrice);
+                                }
+                            } 
+                            if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", itemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetMerchantItemAttributes()) 
+                        {
+                            Console.WriteLine("                    MerchantItemAttributes");
+                            MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                            List<String> actorList  =  merchantItemAttributes.Actor;
+                            foreach (String actor in actorList) 
+                            { 
+                                Console.WriteLine("                        Actor");
+                                Console.WriteLine("                            {0}", actor);
+                            }	
+                            if (merchantItemAttributes.IsSetAddress()) 
+                            {
+                                Console.WriteLine("                        Address");
+                                Address  address = merchantItemAttributes.Address;
+                                if (address.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", address.Name);
+                                }
+                                if (address.IsSetAddress1()) 
+                                {
+                                    Console.WriteLine("                            Address1");
+                                    Console.WriteLine("                                {0}", address.Address1);
+                                }
+                                if (address.IsSetAddress2()) 
+                                {
+                                    Console.WriteLine("                            Address2");
+                                    Console.WriteLine("                                {0}", address.Address2);
+                                }
+                                if (address.IsSetAddress3()) 
+                                {
+                                    Console.WriteLine("                            Address3");
+                                    Console.WriteLine("                                {0}", address.Address3);
+                                }
+                                if (address.IsSetCity()) 
+                                {
+                                    Console.WriteLine("                            City");
+                                    Console.WriteLine("                                {0}", address.City);
+                                }
+                                if (address.IsSetState()) 
+                                {
+                                    Console.WriteLine("                            State");
+                                    Console.WriteLine("                                {0}", address.State);
+                                }
+                                if (address.IsSetPostalCode()) 
+                                {
+                                    Console.WriteLine("                            PostalCode");
+                                    Console.WriteLine("                                {0}", address.PostalCode);
+                                }
+                                if (address.IsSetCountry()) 
+                                {
+                                    Console.WriteLine("                            Country");
+                                    Console.WriteLine("                                {0}", address.Country);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMaximumAge");
+                                DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                            {
+                                Console.WriteLine("                        AmazonMinimumAge");
+                                DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetApertureModes()) 
+                            {
+                                Console.WriteLine("                        ApertureModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ApertureModes);
+                            }
+                            List<String> artistList  =  merchantItemAttributes.Artist;
+                            foreach (String artist in artistList) 
+                            { 
+                                Console.WriteLine("                        Artist");
+                                Console.WriteLine("                            {0}", artist);
+                            }	
+                            if (merchantItemAttributes.IsSetAspectRatio()) 
+                            {
+                                Console.WriteLine("                        AspectRatio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AspectRatio);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                            {
+                                Console.WriteLine("                        AssemblyInstructions");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyInstructions);
+                            }
+                            if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                            {
+                                Console.WriteLine("                        AssemblyRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AssemblyRequired);
+                            }
+                            if (merchantItemAttributes.IsSetAudienceRating()) 
+                            {
+                                Console.WriteLine("                        AudienceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.AudienceRating);
+                            }
+                            List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                            foreach (String audioFormat in audioFormatList) 
+                            { 
+                                Console.WriteLine("                        AudioFormat");
+                                Console.WriteLine("                            {0}", audioFormat);
+                            }	
+                            List<String> authorList  =  merchantItemAttributes.Author;
+                            foreach (String author in authorList) 
+                            { 
+                                Console.WriteLine("                        Author");
+                                Console.WriteLine("                            {0}", author);
+                            }	
+                            if (merchantItemAttributes.IsSetBackFinding()) 
+                            {
+                                Console.WriteLine("                        BackFinding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BackFinding);
+                            }
+                            if (merchantItemAttributes.IsSetBandMaterialType()) 
+                            {
+                                Console.WriteLine("                        BandMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BandMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                            {
+                                Console.WriteLine("                        BatteriesIncluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesIncluded);
+                            }
+                            if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                            {
+                                Console.WriteLine("                        BatteriesRequired");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteriesRequired);
+                            }
+                            if (merchantItemAttributes.IsSetBatteries()) 
+                            {
+                                Console.WriteLine("                        Batteries");
+                                NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                            } 
+                            if (merchantItemAttributes.IsSetBatteryDescription()) 
+                            {
+                                Console.WriteLine("                        BatteryDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryDescription);
+                            }
+                            if (merchantItemAttributes.IsSetBatteryType()) 
+                            {
+                                Console.WriteLine("                        BatteryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BatteryType);
+                            }
+                            if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                            {
+                                Console.WriteLine("                        BezelMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.BezelMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetBinding()) 
+                            {
+                                Console.WriteLine("                        Binding");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Binding);
+                            }
+                            if (merchantItemAttributes.IsSetBrand()) 
+                            {
+                                Console.WriteLine("                        Brand");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Brand);
+                            }
+                            if (merchantItemAttributes.IsSetCalendarType()) 
+                            {
+                                Console.WriteLine("                        CalendarType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CalendarType);
+                            }
+                            List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                            foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                            { 
+                                Console.WriteLine("                        CameraManualFeatures");
+                                Console.WriteLine("                            {0}", cameraManualFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetCaseDiameter()) 
+                            {
+                                Console.WriteLine("                        CaseDiameter");
+                                DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                            {
+                                Console.WriteLine("                        CaseMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetCaseThickness()) 
+                            {
+                                Console.WriteLine("                        CaseThickness");
+                                DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                            } 
+                            if (merchantItemAttributes.IsSetCaseType()) 
+                            {
+                                Console.WriteLine("                        CaseType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CaseType);
+                            }
+                            if (merchantItemAttributes.IsSetCatalogNumber()) 
+                            {
+                                Console.WriteLine("                        CatalogNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CatalogNumber);
+                            }
+                            if (merchantItemAttributes.IsSetCDRWDescription()) 
+                            {
+                                Console.WriteLine("                        CDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetChainType()) 
+                            {
+                                Console.WriteLine("                        ChainType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ChainType);
+                            }
+                            if (merchantItemAttributes.IsSetClaspType()) 
+                            {
+                                Console.WriteLine("                        ClaspType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClaspType);
+                            }
+                            if (merchantItemAttributes.IsSetClothingSize()) 
+                            {
+                                Console.WriteLine("                        ClothingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ClothingSize);
+                            }
+                            if (merchantItemAttributes.IsSetColor()) 
+                            {
+                                Console.WriteLine("                        Color");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Color);
+                            }
+                            if (merchantItemAttributes.IsSetCompatibility()) 
+                            {
+                                Console.WriteLine("                        Compatibility");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Compatibility);
+                            }
+                            if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                            {
+                                Console.WriteLine("                        ComputerHardwareType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerHardwareType);
+                            }
+                            if (merchantItemAttributes.IsSetComputerPlatform()) 
+                            {
+                                Console.WriteLine("                        ComputerPlatform");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ComputerPlatform);
+                            }
+                            if (merchantItemAttributes.IsSetConnectivity()) 
+                            {
+                                Console.WriteLine("                        Connectivity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Connectivity);
+                            }
+                            if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                            {
+                                Console.WriteLine("                        ContinuousShootingSpeed");
+                                DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCountry()) 
+                            {
+                                Console.WriteLine("                        Country");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Country);
+                            }
+                            if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                            {
+                                Console.WriteLine("                        CountryOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CountryOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                            {
+                                Console.WriteLine("                        CPUManufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUManufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetCPUSpeed()) 
+                            {
+                                Console.WriteLine("                        CPUSpeed");
+                                DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetCPUType()) 
+                            {
+                                Console.WriteLine("                        CPUType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.CPUType);
+                            }
+                            List<Creator> creatorList = merchantItemAttributes.Creator;
+                            foreach (Creator creator in creatorList) 
+                            {
+                                Console.WriteLine("                        Creator");
+                            }
+                            if (merchantItemAttributes.IsSetCuisine()) 
+                            {
+                                Console.WriteLine("                        Cuisine");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Cuisine);
+                            }
+                            if (merchantItemAttributes.IsSetCustomizable()) 
+                            {
+                                Console.WriteLine("                        Customizable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Customizable);
+                            }
+                            if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                            {
+                                Console.WriteLine("                        DelayBetweenShots");
+                                DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                            } 
+                            if (merchantItemAttributes.IsSetDeliveryOption()) 
+                            {
+                                Console.WriteLine("                        DeliveryOption");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeliveryOption);
+                            }
+                            if (merchantItemAttributes.IsSetDepartment()) 
+                            {
+                                Console.WriteLine("                        Department");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Department);
+                            }
+                            if (merchantItemAttributes.IsSetDescription()) 
+                            {
+                                Console.WriteLine("                        Description");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Description);
+                            }
+                            if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                            {
+                                Console.WriteLine("                        DeweyDecimalNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DeweyDecimalNumber);
+                            }
+                            if (merchantItemAttributes.IsSetDialColor()) 
+                            {
+                                Console.WriteLine("                        DialColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialColor);
+                            }
+                            if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                            {
+                                Console.WriteLine("                        DialWindowMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DialWindowMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetDigitalZoom()) 
+                            {
+                                Console.WriteLine("                        DigitalZoom");
+                                DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                            } 
+                            List<String> directorList  =  merchantItemAttributes.Director;
+                            foreach (String director in directorList) 
+                            { 
+                                Console.WriteLine("                        Director");
+                                Console.WriteLine("                            {0}", director);
+                            }	
+                            if (merchantItemAttributes.IsSetDisplaySize()) 
+                            {
+                                Console.WriteLine("                        DisplaySize");
+                                DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                            } 
+                            if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                            {
+                                Console.WriteLine("                        DrumSetPieceQuantity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                            }
+                            if (merchantItemAttributes.IsSetDVDLayers()) 
+                            {
+                                Console.WriteLine("                        DVDLayers");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDLayers);
+                            }
+                            if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                            {
+                                Console.WriteLine("                        DVDRWDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDRWDescription);
+                            }
+                            if (merchantItemAttributes.IsSetDVDSides()) 
+                            {
+                                Console.WriteLine("                        DVDSides");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DVDSides);
+                            }
+                            if (merchantItemAttributes.IsSetDPCI()) 
+                            {
+                                Console.WriteLine("                        DPCI");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.DPCI);
+                            }
+                            if (merchantItemAttributes.IsSetEAN()) 
+                            {
+                                Console.WriteLine("                        EAN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.EAN);
+                            }
+                            if (merchantItemAttributes.IsSetEdition()) 
+                            {
+                                Console.WriteLine("                        Edition");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Edition);
+                            }
+                            if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                            {
+                                Console.WriteLine("                        ESRBAgeRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ESRBAgeRating);
+                            }
+                            if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                            {
+                                Console.WriteLine("                        ExternalDisplaySupportDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                            }
+                            if (merchantItemAttributes.IsSetFabricType()) 
+                            {
+                                Console.WriteLine("                        FabricType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FabricType);
+                            }
+                            if (merchantItemAttributes.IsSetFaxNumber()) 
+                            {
+                                Console.WriteLine("                        FaxNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FaxNumber);
+                            }
+                            List<String> featureList  =  merchantItemAttributes.Feature;
+                            foreach (String feature in featureList) 
+                            { 
+                                Console.WriteLine("                        Feature");
+                                Console.WriteLine("                            {0}", feature);
+                            }	
+                            if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                            {
+                                Console.WriteLine("                        FirstIssueLeadTime");
+                                StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                            } 
+                            if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                            {
+                                Console.WriteLine("                        FloppyDiskDriveDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                            }
+                            List<String> formatList  =  merchantItemAttributes.Format;
+                            foreach (String format in formatList) 
+                            { 
+                                Console.WriteLine("                        Format");
+                                Console.WriteLine("                            {0}", format);
+                            }	
+                            if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                            {
+                                Console.WriteLine("                        FixedShippingCharge");
+                                Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                if (fixedShippingCharge.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.Amount);
+                                }
+                                if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.CurrencyCode);
+                                }
+                                if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", fixedShippingCharge.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetGemType()) 
+                            {
+                                Console.WriteLine("                        GemType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GemType);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                            {
+                                Console.WriteLine("                        GraphicsCardInterface");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsCardInterface);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                            {
+                                Console.WriteLine("                        GraphicsDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GraphicsDescription);
+                            }
+                            if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                            {
+                                Console.WriteLine("                        GraphicsMemorySize");
+                                DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                            {
+                                Console.WriteLine("                        GuitarAttribute");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarAttribute);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                            {
+                                Console.WriteLine("                        GuitarBridgeSystem");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarBridgeSystem);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                            {
+                                Console.WriteLine("                        GuitarPickThickness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickThickness);
+                            }
+                            if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                            {
+                                Console.WriteLine("                        GuitarPickupConfiguration");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskCount()) 
+                            {
+                                Console.WriteLine("                        HardDiskCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HardDiskCount);
+                            }
+                            if (merchantItemAttributes.IsSetHardDiskSize()) 
+                            {
+                                Console.WriteLine("                        HardDiskSize");
+                                NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                            } 
+                            if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                            {
+                                Console.WriteLine("                        HasAutoFocus");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasAutoFocus);
+                            }
+                            if (merchantItemAttributes.IsSetHasBurstMode()) 
+                            {
+                                Console.WriteLine("                        HasBurstMode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasBurstMode);
+                            }
+                            if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                            {
+                                Console.WriteLine("                        HasInCameraEditing");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasInCameraEditing);
+                            }
+                            if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                            {
+                                Console.WriteLine("                        HasRedEyeReduction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasRedEyeReduction);
+                            }
+                            if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                            {
+                                Console.WriteLine("                        HasSelfTimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasSelfTimer);
+                            }
+                            if (merchantItemAttributes.IsSetHasTripodMount()) 
+                            {
+                                Console.WriteLine("                        HasTripodMount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasTripodMount);
+                            }
+                            if (merchantItemAttributes.IsSetHasVideoOut()) 
+                            {
+                                Console.WriteLine("                        HasVideoOut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasVideoOut);
+                            }
+                            if (merchantItemAttributes.IsSetHasViewfinder()) 
+                            {
+                                Console.WriteLine("                        HasViewfinder");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HasViewfinder);
+                            }
+                            if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                            {
+                                Console.WriteLine("                        HazardousMaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HazardousMaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                            {
+                                Console.WriteLine("                        HoursOfOperation");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.HoursOfOperation);
+                            }
+                            if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                            {
+                                Console.WriteLine("                        IncludedSoftware");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludedSoftware);
+                            }
+                            if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                            {
+                                Console.WriteLine("                        IncludesMp3Player");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IncludesMp3Player);
+                            }
+                            if (merchantItemAttributes.IsSetIndications()) 
+                            {
+                                Console.WriteLine("                        Indications");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Indications);
+                            }
+                            if (merchantItemAttributes.IsSetIngredients()) 
+                            {
+                                Console.WriteLine("                        Ingredients");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Ingredients);
+                            }
+                            if (merchantItemAttributes.IsSetInstrumentKey()) 
+                            {
+                                Console.WriteLine("                        InstrumentKey");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.InstrumentKey);
+                            }
+                            if (merchantItemAttributes.IsSetIsAutographed()) 
+                            {
+                                Console.WriteLine("                        IsAutographed");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsAutographed);
+                            }
+                            if (merchantItemAttributes.IsSetISBN()) 
+                            {
+                                Console.WriteLine("                        ISBN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ISBN);
+                            }
+                            if (merchantItemAttributes.IsSetIsFragile()) 
+                            {
+                                Console.WriteLine("                        IsFragile");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsFragile);
+                            }
+                            if (merchantItemAttributes.IsSetIsLabCreated()) 
+                            {
+                                Console.WriteLine("                        IsLabCreated");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsLabCreated);
+                            }
+                            if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                            {
+                                Console.WriteLine("                        IsMemorabilia");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IsMemorabilia);
+                            }
+                            if (merchantItemAttributes.IsSetISOEquivalent()) 
+                            {
+                                Console.WriteLine("                        ISOEquivalent");
+                                NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                            } 
+                            if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                            {
+                                Console.WriteLine("                        IssuesPerYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.IssuesPerYear);
+                            }
+                            if (merchantItemAttributes.IsSetItemDimensions()) 
+                            {
+                                Console.WriteLine("                        ItemDimensions");
+                                ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                if (itemDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = itemDimensions.Height;
+                                } 
+                                if (itemDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = itemDimensions.Length;
+                                } 
+                                if (itemDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = itemDimensions.Weight;
+                                } 
+                                if (itemDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = itemDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                            {
+                                Console.WriteLine("                        KeyboardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.KeyboardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetLabel()) 
+                            {
+                                Console.WriteLine("                        Label");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Label);
+                            }
+                            if (merchantItemAttributes.IsSetLanguages()) 
+                            {
+                                Console.WriteLine("                        Languages");
+                                Languages  languages = merchantItemAttributes.Languages;
+                                List<Language> languageList = languages.Language;
+                                foreach (Language language in languageList) 
+                                {
+                                    Console.WriteLine("                            Language");
+                                    if (language.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", language.Name);
+                                    }
+                                    if (language.IsSetType()) 
+                                    {
+                                        Console.WriteLine("                                Type");
+                                        Console.WriteLine("                                    {0}", language.Type);
+                                    }
+                                    if (language.IsSetAudioFormat()) 
+                                    {
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", language.AudioFormat);
+                                    }
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                            {
+                                Console.WriteLine("                        LegalDisclaimer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LegalDisclaimer);
+                            }
+                            if (merchantItemAttributes.IsSetLineVoltage()) 
+                            {
+                                Console.WriteLine("                        LineVoltage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.LineVoltage);
+                            }
+                            if (merchantItemAttributes.IsSetListPrice()) 
+                            {
+                                Console.WriteLine("                        ListPrice");
+                                Price  listPrice = merchantItemAttributes.ListPrice;
+                                if (listPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", listPrice.Amount);
+                                }
+                                if (listPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", listPrice.CurrencyCode);
+                                }
+                                if (listPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", listPrice.FormattedPrice);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                            {
+                                Console.WriteLine("                        MacroFocusRange");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MacroFocusRange);
+                            }
+                            if (merchantItemAttributes.IsSetMagazineType()) 
+                            {
+                                Console.WriteLine("                        MagazineType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MagazineType);
+                            }
+                            if (merchantItemAttributes.IsSetMalletHardness()) 
+                            {
+                                Console.WriteLine("                        MalletHardness");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MalletHardness);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturer()) 
+                            {
+                                Console.WriteLine("                        Manufacturer");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Manufacturer);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerLaborWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMaximumAge");
+                                DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                            {
+                                Console.WriteLine("                        ManufacturerMinimumAge");
+                                DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                            } 
+                            if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                            {
+                                Console.WriteLine("                        ManufacturerPartsWarrantyDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMaterialType()) 
+                            {
+                                Console.WriteLine("                        MaterialType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaterialType);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumAperture()) 
+                            {
+                                Console.WriteLine("                        MaximumAperture");
+                                DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                            {
+                                Console.WriteLine("                        MaximumColorDepth");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumColorDepth);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MaximumFocalLength");
+                                DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumHighResolutionImages");
+                                NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumHorizontalResolution");
+                                NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                            {
+                                Console.WriteLine("                        MaximumLowResolutionImages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                            }
+                            if (merchantItemAttributes.IsSetMaximumResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumResolution");
+                                DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MaximumShutterSpeed");
+                                DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                            {
+                                Console.WriteLine("                        MaximumVerticalResolution");
+                                NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                            } 
+                            if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                            {
+                                Console.WriteLine("                        MaximumWeightRecommendation");
+                                DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                            } 
+                            if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                            {
+                                Console.WriteLine("                        MemorySlotsAvailable");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MemorySlotsAvailable);
+                            }
+                            if (merchantItemAttributes.IsSetMetalStamp()) 
+                            {
+                                Console.WriteLine("                        MetalStamp");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalStamp);
+                            }
+                            if (merchantItemAttributes.IsSetMetalType()) 
+                            {
+                                Console.WriteLine("                        MetalType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MetalType);
+                            }
+                            if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                            {
+                                Console.WriteLine("                        MiniMovieDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MiniMovieDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                            {
+                                Console.WriteLine("                        MinimumFocalLength");
+                                DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                            } 
+                            if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                            {
+                                Console.WriteLine("                        MinimumShutterSpeed");
+                                DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetModel()) 
+                            {
+                                Console.WriteLine("                        Model");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Model);
+                            }
+                            if (merchantItemAttributes.IsSetModelYear()) 
+                            {
+                                Console.WriteLine("                        ModelYear");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModelYear);
+                            }
+                            if (merchantItemAttributes.IsSetModemDescription()) 
+                            {
+                                Console.WriteLine("                        ModemDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ModemDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMonitorSize()) 
+                            {
+                                Console.WriteLine("                        MonitorSize");
+                                DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                            {
+                                Console.WriteLine("                        MonitorViewableDiagonalSize");
+                                DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                            } 
+                            if (merchantItemAttributes.IsSetMouseDescription()) 
+                            {
+                                Console.WriteLine("                        MouseDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MouseDescription);
+                            }
+                            if (merchantItemAttributes.IsSetMPN()) 
+                            {
+                                Console.WriteLine("                        MPN");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MPN);
+                            }
+                            if (merchantItemAttributes.IsSetMusicalStyle()) 
+                            {
+                                Console.WriteLine("                        MusicalStyle");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.MusicalStyle);
+                            }
+                            if (merchantItemAttributes.IsSetNativeResolution()) 
+                            {
+                                Console.WriteLine("                        NativeResolution");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NativeResolution);
+                            }
+                            if (merchantItemAttributes.IsSetNeighborhood()) 
+                            {
+                                Console.WriteLine("                        Neighborhood");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Neighborhood);
+                            }
+                            if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                            {
+                                Console.WriteLine("                        NetworkInterfaceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                            {
+                                Console.WriteLine("                        NotebookDisplayTechnology");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                            }
+                            if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                            {
+                                Console.WriteLine("                        NotebookPointingDeviceDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                            {
+                                Console.WriteLine("                        NumberOfDiscs");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfDiscs);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                            {
+                                Console.WriteLine("                        NumberOfIssues");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfIssues);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfItems()) 
+                            {
+                                Console.WriteLine("                        NumberOfItems");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfItems);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                            {
+                                Console.WriteLine("                        NumberOfKeys");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfKeys);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPages()) 
+                            {
+                                Console.WriteLine("                        NumberOfPages");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPages);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                            {
+                                Console.WriteLine("                        NumberOfPearls");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfPearls);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                            {
+                                Console.WriteLine("                        NumberOfRapidFireShots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStones()) 
+                            {
+                                Console.WriteLine("                        NumberOfStones");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStones);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                            {
+                                Console.WriteLine("                        NumberOfStrings");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfStrings);
+                            }
+                            if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                            {
+                                Console.WriteLine("                        NumberOfTracks");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.NumberOfTracks);
+                            }
+                            if (merchantItemAttributes.IsSetOpticalZoom()) 
+                            {
+                                Console.WriteLine("                        OpticalZoom");
+                                DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                            } 
+                            if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        OriginalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OriginalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetOutputWattage()) 
+                            {
+                                Console.WriteLine("                        OutputWattage");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.OutputWattage);
+                            }
+                            if (merchantItemAttributes.IsSetPackageDimensions()) 
+                            {
+                                Console.WriteLine("                        PackageDimensions");
+                                PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                if (packageDimensions.IsSetHeight()) 
+                                {
+                                    Console.WriteLine("                            Height");
+                                    DecimalWithUnits  height = packageDimensions.Height;
+                                } 
+                                if (packageDimensions.IsSetLength()) 
+                                {
+                                    Console.WriteLine("                            Length");
+                                    DecimalWithUnits  length = packageDimensions.Length;
+                                } 
+                                if (packageDimensions.IsSetWeight()) 
+                                {
+                                    Console.WriteLine("                            Weight");
+                                    DecimalWithUnits  weight = packageDimensions.Weight;
+                                } 
+                                if (packageDimensions.IsSetWidth()) 
+                                {
+                                    Console.WriteLine("                            Width");
+                                    DecimalWithUnits  width = packageDimensions.Width;
+                                } 
+                            } 
+                            if (merchantItemAttributes.IsSetPearlLustre()) 
+                            {
+                                Console.WriteLine("                        PearlLustre");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlLustre);
+                            }
+                            if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                            {
+                                Console.WriteLine("                        PearlMinimumColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlMinimumColor);
+                            }
+                            if (merchantItemAttributes.IsSetPearlShape()) 
+                            {
+                                Console.WriteLine("                        PearlShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlShape);
+                            }
+                            if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                            {
+                                Console.WriteLine("                        PearlStringingMethod");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlStringingMethod);
+                            }
+                            if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                            {
+                                Console.WriteLine("                        PearlSurfaceBlemishes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                            }
+                            if (merchantItemAttributes.IsSetPearlType()) 
+                            {
+                                Console.WriteLine("                        PearlType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlType);
+                            }
+                            if (merchantItemAttributes.IsSetPearlUniformity()) 
+                            {
+                                Console.WriteLine("                        PearlUniformity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PearlUniformity);
+                            }
+                            if (merchantItemAttributes.IsSetPhoneNumber()) 
+                            {
+                                Console.WriteLine("                        PhoneNumber");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PhoneNumber);
+                            }
+                            List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                            foreach (String photoFlashType in photoFlashTypeList) 
+                            { 
+                                Console.WriteLine("                        PhotoFlashType");
+                                Console.WriteLine("                            {0}", photoFlashType);
+                            }	
+                            List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                            foreach (String pictureFormat in pictureFormatList) 
+                            { 
+                                Console.WriteLine("                        PictureFormat");
+                                Console.WriteLine("                            {0}", pictureFormat);
+                            }	
+                            List<String> platformList  =  merchantItemAttributes.Platform;
+                            foreach (String platform in platformList) 
+                            { 
+                                Console.WriteLine("                        Platform");
+                                Console.WriteLine("                            {0}", platform);
+                            }	
+                            if (merchantItemAttributes.IsSetPriceRating()) 
+                            {
+                                Console.WriteLine("                        PriceRating");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PriceRating);
+                            }
+                            if (merchantItemAttributes.IsSetProcessorCount()) 
+                            {
+                                Console.WriteLine("                        ProcessorCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProcessorCount);
+                            }
+                            if (merchantItemAttributes.IsSetProductGroup()) 
+                            {
+                                Console.WriteLine("                        ProductGroup");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ProductGroup);
+                            }
+                            if (merchantItemAttributes.IsSetPromotionalTag()) 
+                            {
+                                Console.WriteLine("                        PromotionalTag");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PromotionalTag);
+                            }
+                            if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                            {
+                                Console.WriteLine("                        POBoxShippingExcluded");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.POBoxShippingExcluded);
+                            }
+                            if (merchantItemAttributes.IsSetPublicationDate()) 
+                            {
+                                Console.WriteLine("                        PublicationDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.PublicationDate);
+                            }
+                            if (merchantItemAttributes.IsSetPublisher()) 
+                            {
+                                Console.WriteLine("                        Publisher");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Publisher);
+                            }
+                            List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                            foreach (String purchasingChannel in purchasingChannelList) 
+                            { 
+                                Console.WriteLine("                        PurchasingChannel");
+                                Console.WriteLine("                            {0}", purchasingChannel);
+                            }	
+                            if (merchantItemAttributes.IsSetReadingLevel()) 
+                            {
+                                Console.WriteLine("                        ReadingLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReadingLevel);
+                            }
+                            if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                            {
+                                Console.WriteLine("                        RecorderTrackCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RecorderTrackCount);
+                            }
+                            if (merchantItemAttributes.IsSetRegionCode()) 
+                            {
+                                Console.WriteLine("                        RegionCode");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionCode);
+                            }
+                            if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                            {
+                                Console.WriteLine("                        RegionOfOrigin");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RegionOfOrigin);
+                            }
+                            if (merchantItemAttributes.IsSetReleaseDate()) 
+                            {
+                                Console.WriteLine("                        ReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReleaseDate);
+                            }
+                            List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                            foreach (String returnMethod in returnMethodList) 
+                            { 
+                                Console.WriteLine("                        ReturnMethod");
+                                Console.WriteLine("                            {0}", returnMethod);
+                            }	
+                            if (merchantItemAttributes.IsSetRemovableMemory()) 
+                            {
+                                Console.WriteLine("                        RemovableMemory");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RemovableMemory);
+                            }
+                            if (merchantItemAttributes.IsSetResolutionModes()) 
+                            {
+                                Console.WriteLine("                        ResolutionModes");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ResolutionModes);
+                            }
+                            if (merchantItemAttributes.IsSetReturnPolicy()) 
+                            {
+                                Console.WriteLine("                        ReturnPolicy");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.ReturnPolicy);
+                            }
+                            if (merchantItemAttributes.IsSetRingSize()) 
+                            {
+                                Console.WriteLine("                        RingSize");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.RingSize);
+                            }
+                            if (merchantItemAttributes.IsSetSafetyWarning()) 
+                            {
+                                Console.WriteLine("                        SafetyWarning");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SafetyWarning);
+                            }
+                            if (merchantItemAttributes.IsSetSalesRestriction()) 
+                            {
+                                Console.WriteLine("                        SalesRestriction");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SalesRestriction);
+                            }
+                            if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                            {
+                                Console.WriteLine("                        SecondaryCacheSize");
+                                NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                            } 
+                            if (merchantItemAttributes.IsSetSettingType()) 
+                            {
+                                Console.WriteLine("                        SettingType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SettingType);
+                            }
+                            if (merchantItemAttributes.IsSetSize()) 
+                            {
+                                Console.WriteLine("                        Size");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Size);
+                            }
+                            if (merchantItemAttributes.IsSetSKU()) 
+                            {
+                                Console.WriteLine("                        SKU");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SKU);
+                            }
+                            if (merchantItemAttributes.IsSetSoldInStores()) 
+                            {
+                                Console.WriteLine("                        SoldInStores");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoldInStores);
+                            }
+                            if (merchantItemAttributes.IsSetSizePerPearl()) 
+                            {
+                                Console.WriteLine("                        SizePerPearl");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SizePerPearl);
+                            }
+                            if (merchantItemAttributes.IsSetSkillLevel()) 
+                            {
+                                Console.WriteLine("                        SkillLevel");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SkillLevel);
+                            }
+                            if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                            {
+                                Console.WriteLine("                        SoundCardDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SoundCardDescription);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerCount()) 
+                            {
+                                Console.WriteLine("                        SpeakerCount");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerCount);
+                            }
+                            if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                            {
+                                Console.WriteLine("                        SpeakerDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SpeakerDescription);
+                            }
+                            List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                            foreach (String specialFeatures in specialFeaturesList) 
+                            { 
+                                Console.WriteLine("                        SpecialFeatures");
+                                Console.WriteLine("                            {0}", specialFeatures);
+                            }	
+                            if (merchantItemAttributes.IsSetStoneClarity()) 
+                            {
+                                Console.WriteLine("                        StoneClarity");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneClarity);
+                            }
+                            if (merchantItemAttributes.IsSetStoneColor()) 
+                            {
+                                Console.WriteLine("                        StoneColor");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneColor);
+                            }
+                            if (merchantItemAttributes.IsSetStoneCut()) 
+                            {
+                                Console.WriteLine("                        StoneCut");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneCut);
+                            }
+                            if (merchantItemAttributes.IsSetStoneShape()) 
+                            {
+                                Console.WriteLine("                        StoneShape");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.StoneShape);
+                            }
+                            if (merchantItemAttributes.IsSetStoneWeight()) 
+                            {
+                                Console.WriteLine("                        StoneWeight");
+                                DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetStudio()) 
+                            {
+                                Console.WriteLine("                        Studio");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Studio);
+                            }
+                            if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                            {
+                                Console.WriteLine("                        SubscriptionLength");
+                                NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                            } 
+                            List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                            foreach (String supportedImageType in supportedImageTypeList) 
+                            { 
+                                Console.WriteLine("                        SupportedImageType");
+                                Console.WriteLine("                            {0}", supportedImageType);
+                            }	
+                            if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                            {
+                                Console.WriteLine("                        SystemBusSpeed");
+                                DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySizeMax");
+                                DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                            {
+                                Console.WriteLine("                        SystemMemorySize");
+                                DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                            } 
+                            if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                            {
+                                Console.WriteLine("                        SystemMemoryType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.SystemMemoryType);
+                            }
+                            if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                            {
+                                Console.WriteLine("                        TellingPageIndicator");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TellingPageIndicator);
+                            }
+                            if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                            {
+                                Console.WriteLine("                        TheatricalReleaseDate");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TheatricalReleaseDate);
+                            }
+                            if (merchantItemAttributes.IsSetTitle()) 
+                            {
+                                Console.WriteLine("                        Title");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Title);
+                            }
+                            if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                            {
+                                Console.WriteLine("                        TotalDiamondWeight");
+                                DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalExternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalExternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                            {
+                                Console.WriteLine("                        TotalFirewirePorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalFirewirePorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                            {
+                                Console.WriteLine("                        TotalGemWeight");
+                                DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                            {
+                                Console.WriteLine("                        TotalInternalBaysFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalInternalBaysFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                            {
+                                Console.WriteLine("                        TotalMetalWeight");
+                                DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                            } 
+                            if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                            {
+                                Console.WriteLine("                        TotalNTSCPALPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                            {
+                                Console.WriteLine("                        TotalParallelPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalParallelPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                            {
+                                Console.WriteLine("                        TotalPCCardSlots");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCCardSlots);
+                            }
+                            if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                            {
+                                Console.WriteLine("                        TotalPCISlotsFree");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalPCISlotsFree);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSerialPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSerialPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalSVideoOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                            {
+                                Console.WriteLine("                        TotalUSB2Ports");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSB2Ports);
+                            }
+                            if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                            {
+                                Console.WriteLine("                        TotalUSBPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalUSBPorts);
+                            }
+                            if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                            {
+                                Console.WriteLine("                        TotalVGAOutPorts");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.TotalVGAOutPorts);
+                            }
+                            if (merchantItemAttributes.IsSetUPC()) 
+                            {
+                                Console.WriteLine("                        UPC");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.UPC);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDenomination()) 
+                            {
+                                Console.WriteLine("                        VariationDenomination");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDenomination);
+                            }
+                            if (merchantItemAttributes.IsSetVariationDescription()) 
+                            {
+                                Console.WriteLine("                        VariationDescription");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.VariationDescription);
+                            }
+                            if (merchantItemAttributes.IsSetVendorRebate()) 
+                            {
+                                Console.WriteLine("                        VendorRebate");
+                                VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                if (vendorRebate.IsSetType()) 
+                                {
+                                    Console.WriteLine("                            Type");
+                                    Console.WriteLine("                                {0}", vendorRebate.Type);
+                                }
+                                if (vendorRebate.IsSetStartDate()) 
+                                {
+                                    Console.WriteLine("                            StartDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.StartDate);
+                                }
+                                if (vendorRebate.IsSetEndDate()) 
+                                {
+                                    Console.WriteLine("                            EndDate");
+                                    Console.WriteLine("                                {0}", vendorRebate.EndDate);
+                                }
+                            } 
+                            if (merchantItemAttributes.IsSetWarranty()) 
+                            {
+                                Console.WriteLine("                        Warranty");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.Warranty);
+                            }
+                            if (merchantItemAttributes.IsSetWatchMovementType()) 
+                            {
+                                Console.WriteLine("                        WatchMovementType");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WatchMovementType);
+                            }
+                            if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                            {
+                                Console.WriteLine("                        WebsiteBuyability");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WebsiteBuyability);
+                            }
+                            if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                            {
+                                Console.WriteLine("                        WaterResistanceDepth");
+                                DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                            } 
+                            if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                            {
+                                Console.WriteLine("                        WirelessMicrophoneFrequency");
+                                Console.WriteLine("                            {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                            }
+                        } 
+                        if (item.IsSetCollections()) 
+                        {
+                            Console.WriteLine("                    Collections");
+                            Collections  collections = item.Collections;
+                            List<CollectionsCollection> collectionList = collections.Collection;
+                            foreach (CollectionsCollection collection in collectionList) 
+                            {
+                                Console.WriteLine("                        Collection");
+                                if (collection.IsSetCollectionSummary()) 
+                                {
+                                    Console.WriteLine("                            CollectionSummary");
+                                    CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                    if (collectionSummary.IsSetLowestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestListPrice");
+                                        Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                        if (lowestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.Amount);
+                                        }
+                                        if (lowestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.CurrencyCode);
+                                        }
+                                        if (lowestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestListPrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestListPrice");
+                                        Price  highestListPrice = collectionSummary.HighestListPrice;
+                                        if (highestListPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestListPrice.Amount);
+                                        }
+                                        if (highestListPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestListPrice.CurrencyCode);
+                                        }
+                                        if (highestListPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestListPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetLowestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestSalePrice");
+                                        Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                        if (lowestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.Amount);
+                                        }
+                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.CurrencyCode);
+                                        }
+                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (collectionSummary.IsSetHighestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestSalePrice");
+                                        Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                        if (highestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.Amount);
+                                        }
+                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.CurrencyCode);
+                                        }
+                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (collection.IsSetCollectionParent()) 
+                                {
+                                    Console.WriteLine("                            CollectionParent");
+                                    CollectionParent  collectionParent = collection.CollectionParent;
+                                    if (collectionParent.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionParent.ASIN);
+                                    }
+                                    if (collectionParent.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionParent.Title);
+                                    }
+                                } 
+                                List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                foreach (CollectionItem collectionItem in collectionItemList) 
+                                {
+                                    Console.WriteLine("                            CollectionItem");
+                                    if (collectionItem.IsSetASIN()) 
+                                    {
+                                        Console.WriteLine("                                ASIN");
+                                        Console.WriteLine("                                    {0}", collectionItem.ASIN);
+                                    }
+                                    if (collectionItem.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", collectionItem.Title);
+                                    }
+                                }
+                            }
+                        } 
+                        if (item.IsSetSubjects()) 
+                        {
+                            Console.WriteLine("                    Subjects");
+                            Subjects  subjects = item.Subjects;
+                            List<String> subjectList  =  subjects.Subject;
+                            foreach (String subject in subjectList) 
+                            { 
+                                Console.WriteLine("                        Subject");
+                                Console.WriteLine("                            {0}", subject);
+                            }	
+                        } 
+                        if (item.IsSetOfferSummary()) 
+                        {
+                            Console.WriteLine("                    OfferSummary");
+                            OfferSummary  offerSummary = item.OfferSummary;
+                            if (offerSummary.IsSetLowestNewPrice()) 
+                            {
+                                Console.WriteLine("                        LowestNewPrice");
+                                Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                if (lowestNewPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.Amount);
+                                }
+                                if (lowestNewPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.CurrencyCode);
+                                }
+                                if (lowestNewPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestNewPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestUsedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestUsedPrice");
+                                Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                if (lowestUsedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.Amount);
+                                }
+                                if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.CurrencyCode);
+                                }
+                                if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestUsedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestCollectiblePrice()) 
+                            {
+                                Console.WriteLine("                        LowestCollectiblePrice");
+                                Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                if (lowestCollectiblePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.Amount);
+                                }
+                                if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.CurrencyCode);
+                                }
+                                if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestCollectiblePrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                            {
+                                Console.WriteLine("                        LowestRefurbishedPrice");
+                                Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                if (lowestRefurbishedPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.Amount);
+                                }
+                                if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.CurrencyCode);
+                                }
+                                if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestRefurbishedPrice.FormattedPrice);
+                                }
+                            } 
+                            if (offerSummary.IsSetTotalNew()) 
+                            {
+                                Console.WriteLine("                        TotalNew");
+                                Console.WriteLine("                            {0}", offerSummary.TotalNew);
+                            }
+                            if (offerSummary.IsSetTotalUsed()) 
+                            {
+                                Console.WriteLine("                        TotalUsed");
+                                Console.WriteLine("                            {0}", offerSummary.TotalUsed);
+                            }
+                            if (offerSummary.IsSetTotalCollectible()) 
+                            {
+                                Console.WriteLine("                        TotalCollectible");
+                                Console.WriteLine("                            {0}", offerSummary.TotalCollectible);
+                            }
+                            if (offerSummary.IsSetTotalRefurbished()) 
+                            {
+                                Console.WriteLine("                        TotalRefurbished");
+                                Console.WriteLine("                            {0}", offerSummary.TotalRefurbished);
+                            }
+                        } 
+                        if (item.IsSetOffers()) 
+                        {
+                            Console.WriteLine("                    Offers");
+                            Offers  offers = item.Offers;
+                            if (offers.IsSetTotalOffers()) 
+                            {
+                                Console.WriteLine("                        TotalOffers");
+                                Console.WriteLine("                            {0}", offers.TotalOffers);
+                            }
+                            if (offers.IsSetTotalOfferPages()) 
+                            {
+                                Console.WriteLine("                        TotalOfferPages");
+                                Console.WriteLine("                            {0}", offers.TotalOfferPages);
+                            }
+                            List<Offer> offerList = offers.Offer;
+                            foreach (Offer offer in offerList) 
+                            {
+                                Console.WriteLine("                        Offer");
+                                if (offer.IsSetMerchant()) 
+                                {
+                                    Console.WriteLine("                            Merchant");
+                                    Merchant  merchant = offer.Merchant;
+                                    if (merchant.IsSetMerchantId()) 
+                                    {
+                                        Console.WriteLine("                                MerchantId");
+                                        Console.WriteLine("                                    {0}", merchant.MerchantId);
+                                    }
+                                    if (merchant.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", merchant.Name);
+                                    }
+                                    if (merchant.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", merchant.GlancePage);
+                                    }
+                                    if (merchant.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", merchant.AverageFeedbackRating);
+                                    }
+                                    if (merchant.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedback);
+                                    }
+                                    if (merchant.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", merchant.TotalFeedbackPages);
+                                    }
+                                } 
+                                if (offer.IsSetSeller()) 
+                                {
+                                    Console.WriteLine("                            Seller");
+                                    Seller  seller = offer.Seller;
+                                    if (seller.IsSetSellerId()) 
+                                    {
+                                        Console.WriteLine("                                SellerId");
+                                        Console.WriteLine("                                    {0}", seller.SellerId);
+                                    }
+                                    if (seller.IsSetSellerName()) 
+                                    {
+                                        Console.WriteLine("                                SellerName");
+                                        Console.WriteLine("                                    {0}", seller.SellerName);
+                                    }
+                                    if (seller.IsSetSellerLegalName()) 
+                                    {
+                                        Console.WriteLine("                                SellerLegalName");
+                                        Console.WriteLine("                                    {0}", seller.SellerLegalName);
+                                    }
+                                    if (seller.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", seller.Nickname);
+                                    }
+                                    if (seller.IsSetGlancePage()) 
+                                    {
+                                        Console.WriteLine("                                GlancePage");
+                                        Console.WriteLine("                                    {0}", seller.GlancePage);
+                                    }
+                                    if (seller.IsSetAbout()) 
+                                    {
+                                        Console.WriteLine("                                About");
+                                        Console.WriteLine("                                    {0}", seller.About);
+                                    }
+                                    if (seller.IsSetMoreAbout()) 
+                                    {
+                                        Console.WriteLine("                                MoreAbout");
+                                        Console.WriteLine("                                    {0}", seller.MoreAbout);
+                                    }
+                                    if (seller.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        SellerLocation  location = seller.Location;
+                                        if (location.IsSetUserDefinedLocation()) 
+                                        {
+                                            Console.WriteLine("                                    UserDefinedLocation");
+                                            Console.WriteLine("                                        {0}", location.UserDefinedLocation);
+                                        }
+                                        if (location.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", location.City);
+                                        }
+                                        if (location.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", location.State);
+                                        }
+                                        if (location.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", location.Country);
+                                        }
+                                    } 
+                                    if (seller.IsSetAverageFeedbackRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageFeedbackRating");
+                                        Console.WriteLine("                                    {0}", seller.AverageFeedbackRating);
+                                    }
+                                    if (seller.IsSetTotalFeedback()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedback");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedback);
+                                    }
+                                    if (seller.IsSetTotalFeedbackPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalFeedbackPages");
+                                        Console.WriteLine("                                    {0}", seller.TotalFeedbackPages);
+                                    }
+                                    if (seller.IsSetSellerFeedbackSummary()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedbackSummary");
+                                        SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                        List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                        foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                        {
+                                            Console.WriteLine("                                    FeedbackDateRange");
+                                            List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                            {
+                                                Console.WriteLine("                                        SellerFeedbackRating");
+                                                if (sellerFeedbackRating.IsSetCount()) 
+                                                {
+                                                    Console.WriteLine("                                            Count");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Count);
+                                                }
+                                                if (sellerFeedbackRating.IsSetPercentage()) 
+                                                {
+                                                    Console.WriteLine("                                            Percentage");
+                                                    Console.WriteLine("                                                {0}", sellerFeedbackRating.Percentage);
+                                                }
+                                            }
+                                        }
+                                    } 
+                                    if (seller.IsSetSellerFeedback()) 
+                                    {
+                                        Console.WriteLine("                                SellerFeedback");
+                                        SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                        List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                        foreach (Feedback feedback in feedbackList) 
+                                        {
+                                            Console.WriteLine("                                    Feedback");
+                                            if (feedback.IsSetRating()) 
+                                            {
+                                                Console.WriteLine("                                        Rating");
+                                                Console.WriteLine("                                            {0}", feedback.Rating);
+                                            }
+                                            if (feedback.IsSetComment()) 
+                                            {
+                                                Console.WriteLine("                                        Comment");
+                                                Console.WriteLine("                                            {0}", feedback.Comment);
+                                            }
+                                            if (feedback.IsSetDate()) 
+                                            {
+                                                Console.WriteLine("                                        Date");
+                                                Console.WriteLine("                                            {0}", feedback.Date);
+                                            }
+                                            if (feedback.IsSetRatedBy()) 
+                                            {
+                                                Console.WriteLine("                                        RatedBy");
+                                                Console.WriteLine("                                            {0}", feedback.RatedBy);
+                                            }
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetOfferAttributes()) 
+                                {
+                                    Console.WriteLine("                            OfferAttributes");
+                                    OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                    if (offerAttributes.IsSetCondition()) 
+                                    {
+                                        Console.WriteLine("                                Condition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.Condition);
+                                    }
+                                    if (offerAttributes.IsSetSubCondition()) 
+                                    {
+                                        Console.WriteLine("                                SubCondition");
+                                        Console.WriteLine("                                    {0}", offerAttributes.SubCondition);
+                                    }
+                                    if (offerAttributes.IsSetConditionNote()) 
+                                    {
+                                        Console.WriteLine("                                ConditionNote");
+                                        Console.WriteLine("                                    {0}", offerAttributes.ConditionNote);
+                                    }
+                                    if (offerAttributes.IsSetWillShipExpedited()) 
+                                    {
+                                        Console.WriteLine("                                WillShipExpedited");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipExpedited);
+                                    }
+                                    if (offerAttributes.IsSetWillShipInternational()) 
+                                    {
+                                        Console.WriteLine("                                WillShipInternational");
+                                        Console.WriteLine("                                    {0}", offerAttributes.WillShipInternational);
+                                    }
+                                } 
+                                List<OfferListing> offerListingList = offer.OfferListing;
+                                foreach (OfferListing offerListing in offerListingList) 
+                                {
+                                    Console.WriteLine("                            OfferListing");
+                                    if (offerListing.IsSetOfferListingId()) 
+                                    {
+                                        Console.WriteLine("                                OfferListingId");
+                                        Console.WriteLine("                                    {0}", offerListing.OfferListingId);
+                                    }
+                                    if (offerListing.IsSetExchangeId()) 
+                                    {
+                                        Console.WriteLine("                                ExchangeId");
+                                        Console.WriteLine("                                    {0}", offerListing.ExchangeId);
+                                    }
+                                    if (offerListing.IsSetPrice()) 
+                                    {
+                                        Console.WriteLine("                                Price");
+                                        Price  price = offerListing.Price;
+                                        if (price.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", price.Amount);
+                                        }
+                                        if (price.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", price.CurrencyCode);
+                                        }
+                                        if (price.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", price.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                SalePrice");
+                                        Price  salePrice = offerListing.SalePrice;
+                                        if (salePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", salePrice.Amount);
+                                        }
+                                        if (salePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", salePrice.CurrencyCode);
+                                        }
+                                        if (salePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", salePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetAmountSaved()) 
+                                    {
+                                        Console.WriteLine("                                AmountSaved");
+                                        Price  amountSaved = offerListing.AmountSaved;
+                                        if (amountSaved.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", amountSaved.Amount);
+                                        }
+                                        if (amountSaved.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", amountSaved.CurrencyCode);
+                                        }
+                                        if (amountSaved.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", amountSaved.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetPercentageSaved()) 
+                                    {
+                                        Console.WriteLine("                                PercentageSaved");
+                                        Console.WriteLine("                                    {0}", offerListing.PercentageSaved);
+                                    }
+                                    if (offerListing.IsSetAvailability()) 
+                                    {
+                                        Console.WriteLine("                                Availability");
+                                        Console.WriteLine("                                    {0}", offerListing.Availability);
+                                    }
+                                    if (offerListing.IsSetAvailabilityAttributes()) 
+                                    {
+                                        Console.WriteLine("                                AvailabilityAttributes");
+                                        AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                        if (availabilityAttributes.IsSetAvailabilityType()) 
+                                        {
+                                            Console.WriteLine("                                    AvailabilityType");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.AvailabilityType);
+                                        }
+                                        if (availabilityAttributes.IsSetIsPreorder()) 
+                                        {
+                                            Console.WriteLine("                                    IsPreorder");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.IsPreorder);
+                                        }
+                                        if (availabilityAttributes.IsSetMinimumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MinimumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MinimumHours);
+                                        }
+                                        if (availabilityAttributes.IsSetMaximumHours()) 
+                                        {
+                                            Console.WriteLine("                                    MaximumHours");
+                                            Console.WriteLine("                                        {0}", availabilityAttributes.MaximumHours);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetQuantity()) 
+                                    {
+                                        Console.WriteLine("                                Quantity");
+                                        Console.WriteLine("                                    {0}", offerListing.Quantity);
+                                    }
+                                    if (offerListing.IsSetISPUStoreAddress()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreAddress");
+                                        Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                        if (ISPUStoreAddress.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Name);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress1()) 
+                                        {
+                                            Console.WriteLine("                                    Address1");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address1);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress2()) 
+                                        {
+                                            Console.WriteLine("                                    Address2");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address2);
+                                        }
+                                        if (ISPUStoreAddress.IsSetAddress3()) 
+                                        {
+                                            Console.WriteLine("                                    Address3");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Address3);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.City);
+                                        }
+                                        if (ISPUStoreAddress.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.State);
+                                        }
+                                        if (ISPUStoreAddress.IsSetPostalCode()) 
+                                        {
+                                            Console.WriteLine("                                    PostalCode");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.PostalCode);
+                                        }
+                                        if (ISPUStoreAddress.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", ISPUStoreAddress.Country);
+                                        }
+                                    } 
+                                    if (offerListing.IsSetISPUStoreHours()) 
+                                    {
+                                        Console.WriteLine("                                ISPUStoreHours");
+                                        Console.WriteLine("                                    {0}", offerListing.ISPUStoreHours);
+                                    }
+                                    if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                    {
+                                        Console.WriteLine("                                IsEligibleForSuperSaverShipping");
+                                        Console.WriteLine("                                    {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                    }
+                                    if (offerListing.IsSetSalesRestriction()) 
+                                    {
+                                        Console.WriteLine("                                SalesRestriction");
+                                        Console.WriteLine("                                    {0}", offerListing.SalesRestriction);
+                                    }
+                                    List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                    foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                    {
+                                        Console.WriteLine("                                ShippingCharge");
+                                        if (shippingCharge.IsSetShippingType()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingType");
+                                            Console.WriteLine("                                        {0}", shippingCharge.ShippingType);
+                                        }
+                                        if (shippingCharge.IsSetShippingPrice()) 
+                                        {
+                                            Console.WriteLine("                                    ShippingPrice");
+                                            Price  shippingPrice = shippingCharge.ShippingPrice;
+                                            if (shippingPrice.IsSetAmount()) 
+                                            {
+                                                Console.WriteLine("                                        Amount");
+                                                Console.WriteLine("                                            {0}", shippingPrice.Amount);
+                                            }
+                                            if (shippingPrice.IsSetCurrencyCode()) 
+                                            {
+                                                Console.WriteLine("                                        CurrencyCode");
+                                                Console.WriteLine("                                            {0}", shippingPrice.CurrencyCode);
+                                            }
+                                            if (shippingPrice.IsSetFormattedPrice()) 
+                                            {
+                                                Console.WriteLine("                                        FormattedPrice");
+                                                Console.WriteLine("                                            {0}", shippingPrice.FormattedPrice);
+                                            }
+                                        } 
+                                    }
+                                }
+                                if (offer.IsSetLoyaltyPoints()) 
+                                {
+                                    Console.WriteLine("                            LoyaltyPoints");
+                                    LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                    if (loyaltyPoints.IsSetPoints()) 
+                                    {
+                                        Console.WriteLine("                                Points");
+                                        Console.WriteLine("                                    {0}", loyaltyPoints.Points);
+                                    }
+                                    if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                    {
+                                        Console.WriteLine("                                TypicalRedemptionValue");
+                                        Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                        if (typicalRedemptionValue.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.Amount);
+                                        }
+                                        if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.CurrencyCode);
+                                        }
+                                        if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", typicalRedemptionValue.FormattedPrice);
+                                        }
+                                    } 
+                                } 
+                                if (offer.IsSetPromotions()) 
+                                {
+                                    Console.WriteLine("                            Promotions");
+                                    Promotions  promotions = offer.Promotions;
+                                    List<Promotion> promotionList = promotions.Promotion;
+                                    foreach (Promotion promotion in promotionList) 
+                                    {
+                                        Console.WriteLine("                                Promotion");
+                                        if (promotion.IsSetSummary()) 
+                                        {
+                                            Console.WriteLine("                                    Summary");
+                                            PromotionSummary  summary = promotion.Summary;
+                                            if (summary.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", summary.PromotionId);
+                                            }
+                                            if (summary.IsSetCategory()) 
+                                            {
+                                                Console.WriteLine("                                        Category");
+                                                Console.WriteLine("                                            {0}", summary.Category);
+                                            }
+                                            if (summary.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", summary.StartDate);
+                                            }
+                                            if (summary.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", summary.EndDate);
+                                            }
+                                            if (summary.IsSetEligibilityRequirementDescription()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirementDescription");
+                                                Console.WriteLine("                                            {0}", summary.EligibilityRequirementDescription);
+                                            }
+                                            if (summary.IsSetBenefitDescription()) 
+                                            {
+                                                Console.WriteLine("                                        BenefitDescription");
+                                                Console.WriteLine("                                            {0}", summary.BenefitDescription);
+                                            }
+                                            if (summary.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", summary.TermsAndConditions);
+                                            }
+                                        } 
+                                        if (promotion.IsSetDetails()) 
+                                        {
+                                            Console.WriteLine("                                    Details");
+                                            PromotionDetails  details = promotion.Details;
+                                            if (details.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", details.MerchantId);
+                                            }
+                                            if (details.IsSetOwningMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        OwningMerchantId");
+                                                Console.WriteLine("                                            {0}", details.OwningMerchantId);
+                                            }
+                                            if (details.IsSetPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionId");
+                                                Console.WriteLine("                                            {0}", details.PromotionId);
+                                            }
+                                            if (details.IsSetPromotionCategory()) 
+                                            {
+                                                Console.WriteLine("                                        PromotionCategory");
+                                                Console.WriteLine("                                            {0}", details.PromotionCategory);
+                                            }
+                                            if (details.IsSetMerchantPromotionId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantPromotionId");
+                                                Console.WriteLine("                                            {0}", details.MerchantPromotionId);
+                                            }
+                                            if (details.IsSetGroupClaimCode()) 
+                                            {
+                                                Console.WriteLine("                                        GroupClaimCode");
+                                                Console.WriteLine("                                            {0}", details.GroupClaimCode);
+                                            }
+                                            if (details.IsSetCouponCombinationType()) 
+                                            {
+                                                Console.WriteLine("                                        CouponCombinationType");
+                                                Console.WriteLine("                                            {0}", details.CouponCombinationType);
+                                            }
+                                            if (details.IsSetStartDate()) 
+                                            {
+                                                Console.WriteLine("                                        StartDate");
+                                                Console.WriteLine("                                            {0}", details.StartDate);
+                                            }
+                                            if (details.IsSetEndDate()) 
+                                            {
+                                                Console.WriteLine("                                        EndDate");
+                                                Console.WriteLine("                                            {0}", details.EndDate);
+                                            }
+                                            if (details.IsSetTermsAndConditions()) 
+                                            {
+                                                Console.WriteLine("                                        TermsAndConditions");
+                                                Console.WriteLine("                                            {0}", details.TermsAndConditions);
+                                            }
+                                            if (details.IsSetEligibilityRequirements()) 
+                                            {
+                                                Console.WriteLine("                                        EligibilityRequirements");
+                                                PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                {
+                                                    Console.WriteLine("                                            EligibilityRequirement");
+                                                    if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                    {
+                                                        Console.WriteLine("                                                EligibilityRequirementType");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", eligibilityRequirement.Quantity);
+                                                    }
+                                                    if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                CurrencyAmount");
+                                                        Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                        if (currencyAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.Amount);
+                                                        }
+                                                        if (currencyAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.CurrencyCode);
+                                                        }
+                                                        if (currencyAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", currencyAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetBenefits()) 
+                                            {
+                                                Console.WriteLine("                                        Benefits");
+                                                PromotionBenefits  benefits = details.Benefits;
+                                                List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                foreach (PromotionBenefit benefit in benefitList) 
+                                                {
+                                                    Console.WriteLine("                                            Benefit");
+                                                    if (benefit.IsSetBenefitType()) 
+                                                    {
+                                                        Console.WriteLine("                                                BenefitType");
+                                                        Console.WriteLine("                                                    {0}", benefit.BenefitType);
+                                                    }
+                                                    if (benefit.IsSetComponentType()) 
+                                                    {
+                                                        Console.WriteLine("                                                ComponentType");
+                                                        Console.WriteLine("                                                    {0}", benefit.ComponentType);
+                                                    }
+                                                    if (benefit.IsSetQuantity()) 
+                                                    {
+                                                        Console.WriteLine("                                                Quantity");
+                                                        Console.WriteLine("                                                    {0}", benefit.Quantity);
+                                                    }
+                                                    if (benefit.IsSetPercentOff()) 
+                                                    {
+                                                        Console.WriteLine("                                                PercentOff");
+                                                        Console.WriteLine("                                                    {0}", benefit.PercentOff);
+                                                    }
+                                                    if (benefit.IsSetFixedAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                FixedAmount");
+                                                        Price  fixedAmount = benefit.FixedAmount;
+                                                        if (fixedAmount.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.Amount);
+                                                        }
+                                                        if (fixedAmount.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.CurrencyCode);
+                                                        }
+                                                        if (fixedAmount.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", fixedAmount.FormattedPrice);
+                                                        }
+                                                    } 
+                                                    if (benefit.IsSetCeiling()) 
+                                                    {
+                                                        Console.WriteLine("                                                Ceiling");
+                                                        Price  ceiling = benefit.Ceiling;
+                                                        if (ceiling.IsSetAmount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Amount");
+                                                            Console.WriteLine("                                                        {0}", ceiling.Amount);
+                                                        }
+                                                        if (ceiling.IsSetCurrencyCode()) 
+                                                        {
+                                                            Console.WriteLine("                                                    CurrencyCode");
+                                                            Console.WriteLine("                                                        {0}", ceiling.CurrencyCode);
+                                                        }
+                                                        if (ceiling.IsSetFormattedPrice()) 
+                                                        {
+                                                            Console.WriteLine("                                                    FormattedPrice");
+                                                            Console.WriteLine("                                                        {0}", ceiling.FormattedPrice);
+                                                        }
+                                                    } 
+                                                }
+                                            } 
+                                            if (details.IsSetItemApplicability()) 
+                                            {
+                                                Console.WriteLine("                                        ItemApplicability");
+                                                PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                if (itemApplicability.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.ASIN);
+                                                }
+                                                if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInBenefitSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInBenefitSet);
+                                                }
+                                                if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                {
+                                                    Console.WriteLine("                                            IsInEligibilityRequirementSet");
+                                                    Console.WriteLine("                                                {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                }
+                                            } 
+                                            if (details.IsSetMerchandisingMessage()) 
+                                            {
+                                                Console.WriteLine("                                        MerchandisingMessage");
+                                                Console.WriteLine("                                            {0}", details.MerchandisingMessage);
+                                            }
+                                        } 
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetVariationSummary()) 
+                        {
+                            Console.WriteLine("                    VariationSummary");
+                            VariationSummary  variationSummary = item.VariationSummary;
+                            if (variationSummary.IsSetLowestPrice()) 
+                            {
+                                Console.WriteLine("                        LowestPrice");
+                                Price  lowestPrice = variationSummary.LowestPrice;
+                                if (lowestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestPrice.Amount);
+                                }
+                                if (lowestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestPrice.CurrencyCode);
+                                }
+                                if (lowestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestPrice()) 
+                            {
+                                Console.WriteLine("                        HighestPrice");
+                                Price  highestPrice = variationSummary.HighestPrice;
+                                if (highestPrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestPrice.Amount);
+                                }
+                                if (highestPrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestPrice.CurrencyCode);
+                                }
+                                if (highestPrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestPrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetLowestSalePrice()) 
+                            {
+                                Console.WriteLine("                        LowestSalePrice");
+                                Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                if (lowestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.Amount);
+                                }
+                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.CurrencyCode);
+                                }
+                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", lowestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetHighestSalePrice()) 
+                            {
+                                Console.WriteLine("                        HighestSalePrice");
+                                Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                if (highestSalePrice.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", highestSalePrice.Amount);
+                                }
+                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", highestSalePrice.CurrencyCode);
+                                }
+                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", highestSalePrice.FormattedPrice);
+                                }
+                            } 
+                            if (variationSummary.IsSetSingleMerchantId()) 
+                            {
+                                Console.WriteLine("                        SingleMerchantId");
+                                Console.WriteLine("                            {0}", variationSummary.SingleMerchantId);
+                            }
+                        } 
+                        if (item.IsSetVariations()) 
+                        {
+                            Console.WriteLine("                    Variations");
+                            Variations  variations = item.Variations;
+                            if (variations.IsSetTotalVariations()) 
+                            {
+                                Console.WriteLine("                        TotalVariations");
+                                Console.WriteLine("                            {0}", variations.TotalVariations);
+                            }
+                            if (variations.IsSetTotalVariationPages()) 
+                            {
+                                Console.WriteLine("                        TotalVariationPages");
+                                Console.WriteLine("                            {0}", variations.TotalVariationPages);
+                            }
+                            if (variations.IsSetVariationDimensions()) 
+                            {
+                                Console.WriteLine("                        VariationDimensions");
+                                VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                foreach (String variationDimension in variationDimensionList) 
+                                { 
+                                    Console.WriteLine("                            VariationDimension");
+                                    Console.WriteLine("                                {0}", variationDimension);
+                                }	
+                            } 
+                        } 
+                        if (item.IsSetCustomerReviews()) 
+                        {
+                            Console.WriteLine("                    CustomerReviews");
+                            CustomerReviews  customerReviews = item.CustomerReviews;
+                            if (customerReviews.IsSetAverageRating()) 
+                            {
+                                Console.WriteLine("                        AverageRating");
+                                Console.WriteLine("                            {0}", customerReviews.AverageRating);
+                            }
+                            if (customerReviews.IsSetTotalReviews()) 
+                            {
+                                Console.WriteLine("                        TotalReviews");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviews);
+                            }
+                            if (customerReviews.IsSetTotalReviewPages()) 
+                            {
+                                Console.WriteLine("                        TotalReviewPages");
+                                Console.WriteLine("                            {0}", customerReviews.TotalReviewPages);
+                            }
+                            List<Review> reviewList = customerReviews.Review;
+                            foreach (Review review in reviewList) 
+                            {
+                                Console.WriteLine("                        Review");
+                                if (review.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", review.ASIN);
+                                }
+                                if (review.IsSetRating()) 
+                                {
+                                    Console.WriteLine("                            Rating");
+                                    Console.WriteLine("                                {0}", review.Rating);
+                                }
+                                if (review.IsSetHelpfulVotes()) 
+                                {
+                                    Console.WriteLine("                            HelpfulVotes");
+                                    Console.WriteLine("                                {0}", review.HelpfulVotes);
+                                }
+                                if (review.IsSetCustomerId()) 
+                                {
+                                    Console.WriteLine("                            CustomerId");
+                                    Console.WriteLine("                                {0}", review.CustomerId);
+                                }
+                                if (review.IsSetReviewer()) 
+                                {
+                                    Console.WriteLine("                            Reviewer");
+                                    Reviewer  reviewer = review.Reviewer;
+                                    if (reviewer.IsSetCustomerId()) 
+                                    {
+                                        Console.WriteLine("                                CustomerId");
+                                        Console.WriteLine("                                    {0}", reviewer.CustomerId);
+                                    }
+                                    if (reviewer.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", reviewer.Name);
+                                    }
+                                    if (reviewer.IsSetNickname()) 
+                                    {
+                                        Console.WriteLine("                                Nickname");
+                                        Console.WriteLine("                                    {0}", reviewer.Nickname);
+                                    }
+                                    if (reviewer.IsSetLocation()) 
+                                    {
+                                        Console.WriteLine("                                Location");
+                                        Console.WriteLine("                                    {0}", reviewer.Location);
+                                    }
+                                } 
+                                if (review.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", review.TotalVotes);
+                                }
+                                if (review.IsSetDate()) 
+                                {
+                                    Console.WriteLine("                            Date");
+                                    Console.WriteLine("                                {0}", review.Date);
+                                }
+                                if (review.IsSetSummary()) 
+                                {
+                                    Console.WriteLine("                            Summary");
+                                    Console.WriteLine("                                {0}", review.Summary);
+                                }
+                                if (review.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", review.Content);
+                                }
+                            }
+                        } 
+                        if (item.IsSetEditorialReviews()) 
+                        {
+                            Console.WriteLine("                    EditorialReviews");
+                            EditorialReviews  editorialReviews = item.EditorialReviews;
+                            List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                            foreach (EditorialReview editorialReview in editorialReviewList) 
+                            {
+                                Console.WriteLine("                        EditorialReview");
+                                if (editorialReview.IsSetSource()) 
+                                {
+                                    Console.WriteLine("                            Source");
+                                    Console.WriteLine("                                {0}", editorialReview.Source);
+                                }
+                                if (editorialReview.IsSetContent()) 
+                                {
+                                    Console.WriteLine("                            Content");
+                                    Console.WriteLine("                                {0}", editorialReview.Content);
+                                }
+                                if (editorialReview.IsSetIsLinkSuppressed()) 
+                                {
+                                    Console.WriteLine("                            IsLinkSuppressed");
+                                    Console.WriteLine("                                {0}", editorialReview.IsLinkSuppressed);
+                                }
+                            }
+                        } 
+                        if (item.IsSetSimilarProducts()) 
+                        {
+                            Console.WriteLine("                    SimilarProducts");
+                            SimilarProducts  similarProducts = item.SimilarProducts;
+                            List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                            foreach (SimilarProduct similarProduct in similarProductList) 
+                            {
+                                Console.WriteLine("                        SimilarProduct");
+                                if (similarProduct.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", similarProduct.ASIN);
+                                }
+                                if (similarProduct.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", similarProduct.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetAccessories()) 
+                        {
+                            Console.WriteLine("                    Accessories");
+                            Accessories  accessories = item.Accessories;
+                            List<Accessory> accessoryList = accessories.Accessory;
+                            foreach (Accessory accessory in accessoryList) 
+                            {
+                                Console.WriteLine("                        Accessory");
+                                if (accessory.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", accessory.ASIN);
+                                }
+                                if (accessory.IsSetTitle()) 
+                                {
+                                    Console.WriteLine("                            Title");
+                                    Console.WriteLine("                                {0}", accessory.Title);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTracks()) 
+                        {
+                            Console.WriteLine("                    Tracks");
+                            Tracks  tracks = item.Tracks;
+                            List<Disc> discList = tracks.Disc;
+                            foreach (Disc disc in discList) 
+                            {
+                                Console.WriteLine("                        Disc");
+                                List<Track> trackList = disc.Track;
+                                foreach (Track track in trackList) 
+                                {
+                                    Console.WriteLine("                            Track");
+                                }
+                            }
+                        } 
+                        if (item.IsSetBrowseNodes()) 
+                        {
+                            Console.WriteLine("                    BrowseNodes");
+                            BrowseNodes  browseNodes = item.BrowseNodes;
+                            List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                            foreach (BrowseNode browseNode in browseNodeList) 
+                            {
+                                Console.WriteLine("                        BrowseNode");
+                                if (browseNode.IsSetBrowseNodeId()) 
+                                {
+                                    Console.WriteLine("                            BrowseNodeId");
+                                    Console.WriteLine("                                {0}", browseNode.BrowseNodeId);
+                                }
+                                if (browseNode.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", browseNode.Name);
+                                }
+                                if (browseNode.IsSetIsCategoryRoot()) 
+                                {
+                                    Console.WriteLine("                            IsCategoryRoot");
+                                    Console.WriteLine("                                {0}", browseNode.IsCategoryRoot);
+                                }
+                                if (browseNode.IsSetProperties()) 
+                                {
+                                    Console.WriteLine("                            Properties");
+                                    BrowseNodeProperties  properties = browseNode.Properties;
+                                    List<Property> propertyList = properties.Property;
+                                    foreach (Property property in propertyList) 
+                                    {
+                                        Console.WriteLine("                                Property");
+                                        if (property.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", property.Name);
+                                        }
+                                        if (property.IsSetValue()) 
+                                        {
+                                            Console.WriteLine("                                    Value");
+                                            Console.WriteLine("                                        {0}", property.Value);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetChildren()) 
+                                {
+                                    Console.WriteLine("                            Children");
+                                    BrowseNodeChildren  children = browseNode.Children;
+                                } 
+                                if (browseNode.IsSetAncestors()) 
+                                {
+                                    Console.WriteLine("                            Ancestors");
+                                    BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                } 
+                                if (browseNode.IsSetTopSellers()) 
+                                {
+                                    Console.WriteLine("                            TopSellers");
+                                    TopSellers  topSellers = browseNode.TopSellers;
+                                    List<TopSeller> topSellerList = topSellers.TopSeller;
+                                    foreach (TopSeller topSeller in topSellerList) 
+                                    {
+                                        Console.WriteLine("                                TopSeller");
+                                        if (topSeller.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", topSeller.ASIN);
+                                        }
+                                        if (topSeller.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", topSeller.Title);
+                                        }
+                                    }
+                                } 
+                                if (browseNode.IsSetNewReleases()) 
+                                {
+                                    Console.WriteLine("                            NewReleases");
+                                    NewReleases  newReleases = browseNode.NewReleases;
+                                    List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                    foreach (NewRelease newRelease in newReleaseList) 
+                                    {
+                                        Console.WriteLine("                                NewRelease");
+                                        if (newRelease.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", newRelease.ASIN);
+                                        }
+                                        if (newRelease.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", newRelease.Title);
+                                        }
+                                    }
+                                } 
+                            }
+                        } 
+                        if (item.IsSetSearchInside()) 
+                        {
+                            Console.WriteLine("                    SearchInside");
+                            SearchInside  searchInside = item.SearchInside;
+                            if (searchInside.IsSetTotalExcerpts()) 
+                            {
+                                Console.WriteLine("                        TotalExcerpts");
+                                Console.WriteLine("                            {0}", searchInside.TotalExcerpts);
+                            }
+                            if (searchInside.IsSetExcerpt()) 
+                            {
+                                Console.WriteLine("                        Excerpt");
+                                SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                if (excerpt.IsSetChecksum()) 
+                                {
+                                    Console.WriteLine("                            Checksum");
+                                    Console.WriteLine("                                {0}", excerpt.Checksum);
+                                }
+                                if (excerpt.IsSetPageType()) 
+                                {
+                                    Console.WriteLine("                            PageType");
+                                    Console.WriteLine("                                {0}", excerpt.PageType);
+                                }
+                                if (excerpt.IsSetPageNumber()) 
+                                {
+                                    Console.WriteLine("                            PageNumber");
+                                    Console.WriteLine("                                {0}", excerpt.PageNumber);
+                                }
+                                if (excerpt.IsSetSequenceNumber()) 
+                                {
+                                    Console.WriteLine("                            SequenceNumber");
+                                    Console.WriteLine("                                {0}", excerpt.SequenceNumber);
+                                }
+                                if (excerpt.IsSetText()) 
+                                {
+                                    Console.WriteLine("                            Text");
+                                    Console.WriteLine("                                {0}", excerpt.Text);
+                                }
+                            } 
+                        } 
+                        if (item.IsSetListmaniaLists()) 
+                        {
+                            Console.WriteLine("                    ListmaniaLists");
+                            ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                            List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                            foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                            {
+                                Console.WriteLine("                        ListmaniaList");
+                                if (listmaniaList.IsSetListId()) 
+                                {
+                                    Console.WriteLine("                            ListId");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListId);
+                                }
+                                if (listmaniaList.IsSetListName()) 
+                                {
+                                    Console.WriteLine("                            ListName");
+                                    Console.WriteLine("                                {0}", listmaniaList.ListName);
+                                }
+                            }
+                        } 
+                        if (item.IsSetTags()) 
+                        {
+                            Console.WriteLine("                    Tags");
+                            Tags  tags = item.Tags;
+                            if (tags.IsSetDistinctTags()) 
+                            {
+                                Console.WriteLine("                        DistinctTags");
+                                Console.WriteLine("                            {0}", tags.DistinctTags);
+                            }
+                            if (tags.IsSetDistinctItems()) 
+                            {
+                                Console.WriteLine("                        DistinctItems");
+                                Console.WriteLine("                            {0}", tags.DistinctItems);
+                            }
+                            if (tags.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", tags.DistinctUsers);
+                            }
+                            if (tags.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", tags.TotalUsages);
+                            }
+                            if (tags.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = tags.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (tags.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = tags.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            List<Tag> tagList = tags.Tag;
+                            foreach (Tag tag in tagList) 
+                            {
+                                Console.WriteLine("                        Tag");
+                                if (tag.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", tag.Name);
+                                }
+                                if (tag.IsSetTagType()) 
+                                {
+                                    Console.WriteLine("                            TagType");
+                                    Console.WriteLine("                                {0}", tag.TagType);
+                                }
+                                if (tag.IsSetDistinctItems()) 
+                                {
+                                    Console.WriteLine("                            DistinctItems");
+                                    Console.WriteLine("                                {0}", tag.DistinctItems);
+                                }
+                                if (tag.IsSetDistinctUsers()) 
+                                {
+                                    Console.WriteLine("                            DistinctUsers");
+                                    Console.WriteLine("                                {0}", tag.DistinctUsers);
+                                }
+                                if (tag.IsSetTotalUsages()) 
+                                {
+                                    Console.WriteLine("                            TotalUsages");
+                                    Console.WriteLine("                                {0}", tag.TotalUsages);
+                                }
+                                if (tag.IsSetFirstTagging()) 
+                                {
+                                    Console.WriteLine("                            FirstTagging");
+                                    Tagging  firstTagging = tag.FirstTagging;
+                                    if (firstTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", firstTagging.Name);
+                                    }
+                                    if (firstTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", firstTagging.EntityId);
+                                    }
+                                    if (firstTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", firstTagging.UserId);
+                                    }
+                                    if (firstTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", firstTagging.Time);
+                                    }
+                                } 
+                                if (tag.IsSetLastTagging()) 
+                                {
+                                    Console.WriteLine("                            LastTagging");
+                                    Tagging  lastTagging = tag.LastTagging;
+                                    if (lastTagging.IsSetName()) 
+                                    {
+                                        Console.WriteLine("                                Name");
+                                        Console.WriteLine("                                    {0}", lastTagging.Name);
+                                    }
+                                    if (lastTagging.IsSetEntityId()) 
+                                    {
+                                        Console.WriteLine("                                EntityId");
+                                        Console.WriteLine("                                    {0}", lastTagging.EntityId);
+                                    }
+                                    if (lastTagging.IsSetUserId()) 
+                                    {
+                                        Console.WriteLine("                                UserId");
+                                        Console.WriteLine("                                    {0}", lastTagging.UserId);
+                                    }
+                                    if (lastTagging.IsSetTime()) 
+                                    {
+                                        Console.WriteLine("                                Time");
+                                        Console.WriteLine("                                    {0}", lastTagging.Time);
+                                    }
+                                } 
+                                List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                                foreach (TaggedItems taggedItems in taggedItemsList) 
+                                {
+                                    Console.WriteLine("                            TaggedItems");
+                                    if (taggedItems.IsSetDistinctUsers()) 
+                                    {
+                                        Console.WriteLine("                                DistinctUsers");
+                                        Console.WriteLine("                                    {0}", taggedItems.DistinctUsers);
+                                    }
+                                    if (taggedItems.IsSetTotalUsages()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsages");
+                                        Console.WriteLine("                                    {0}", taggedItems.TotalUsages);
+                                    }
+                                    if (taggedItems.IsSetFirstTagging()) 
+                                    {
+                                        Console.WriteLine("                                FirstTagging");
+                                        Tagging  firstTagging = taggedItems.FirstTagging;
+                                        if (firstTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", firstTagging.Name);
+                                        }
+                                        if (firstTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", firstTagging.EntityId);
+                                        }
+                                        if (firstTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", firstTagging.UserId);
+                                        }
+                                        if (firstTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", firstTagging.Time);
+                                        }
+                                    } 
+                                    if (taggedItems.IsSetLastTagging()) 
+                                    {
+                                        Console.WriteLine("                                LastTagging");
+                                        Tagging  lastTagging = taggedItems.LastTagging;
+                                        if (lastTagging.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", lastTagging.Name);
+                                        }
+                                        if (lastTagging.IsSetEntityId()) 
+                                        {
+                                            Console.WriteLine("                                    EntityId");
+                                            Console.WriteLine("                                        {0}", lastTagging.EntityId);
+                                        }
+                                        if (lastTagging.IsSetUserId()) 
+                                        {
+                                            Console.WriteLine("                                    UserId");
+                                            Console.WriteLine("                                        {0}", lastTagging.UserId);
+                                        }
+                                        if (lastTagging.IsSetTime()) 
+                                        {
+                                            Console.WriteLine("                                    Time");
+                                            Console.WriteLine("                                        {0}", lastTagging.Time);
+                                        }
+                                    } 
+                                }
+                                List<TaggedListmaniaLists> taggedListmaniaListsList = tag.TaggedListmaniaLists;
+                                foreach (TaggedListmaniaLists taggedListmaniaLists in taggedListmaniaListsList) 
+                                {
+                                    Console.WriteLine("                            TaggedListmaniaLists");
+                                    if (taggedListmaniaLists.IsSetList()) 
+                                    {
+                                        Console.WriteLine("                                List");
+                                        List  list = taggedListmaniaLists.List;
+                                        if (list.IsSetListId()) 
+                                        {
+                                            Console.WriteLine("                                    ListId");
+                                            Console.WriteLine("                                        {0}", list.ListId);
+                                        }
+                                        if (list.IsSetListURL()) 
+                                        {
+                                            Console.WriteLine("                                    ListURL");
+                                            Console.WriteLine("                                        {0}", list.ListURL);
+                                        }
+                                        if (list.IsSetRegistryNumber()) 
+                                        {
+                                            Console.WriteLine("                                    RegistryNumber");
+                                            Console.WriteLine("                                        {0}", list.RegistryNumber);
+                                        }
+                                    } 
+                                }
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                                                }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TagLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TagLookupSample.cs
new file mode 100644
index 0000000..d10df2e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TagLookupSample.cs
@@ -0,0 +1,5128 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Tag Lookup  Samples
+    /// </summary>
+    public class TagLookupSample
+    {
+    
+                                                                                                 
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The TagLookup operation returns entities based on specifying one to five tags.
+        /// A tag is a descriptive word that a customer uses to label entities on Amazon's retail website.
+        /// Entities can be items for sale, Listmania lists, guides, and so forth. For example, a customer might tag a
+        /// given entity with the phrase, "BestCookbook." For more information, see Tags.
+        /// <p/>
+        /// In the tag-related response groups, Tags and TagSummary specify the amount of informtion returned. The
+        /// other tag-related response groups, TaggedGuides, TaggedItems, and Tagged listmaniaLists,
+        /// specify the kind of entity tagged.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>AlternateVersions</li>
+        /// <li>BrowseNodes</li>
+        /// <li>Collections</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>OfferListings</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>ShippingCharges</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>Tracks</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">TagLookup request</param>
+        public static void InvokeTagLookup(AmazonECS service, params TagLookupRequest [] request) 
+        {
+            try 
+            {
+                TagLookupResponse response = service.TagLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        TagLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Tags> tagsList = response.Tags;
+                foreach (Tags tags in tagsList) 
+                {
+                    Console.WriteLine("            Tags");
+                    if (tags.IsSetDistinctTags()) 
+                    {
+                        Console.WriteLine("                DistinctTags");
+                        Console.WriteLine("                    {0}", tags.DistinctTags);
+                    }
+                    if (tags.IsSetDistinctItems()) 
+                    {
+                        Console.WriteLine("                DistinctItems");
+                        Console.WriteLine("                    {0}", tags.DistinctItems);
+                    }
+                    if (tags.IsSetDistinctUsers()) 
+                    {
+                        Console.WriteLine("                DistinctUsers");
+                        Console.WriteLine("                    {0}", tags.DistinctUsers);
+                    }
+                    if (tags.IsSetTotalUsages()) 
+                    {
+                        Console.WriteLine("                TotalUsages");
+                        Console.WriteLine("                    {0}", tags.TotalUsages);
+                    }
+                    if (tags.IsSetFirstTagging()) 
+                    {
+                        Console.WriteLine("                FirstTagging");
+                        Tagging  firstTagging = tags.FirstTagging;
+                        if (firstTagging.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", firstTagging.Name);
+                        }
+                        if (firstTagging.IsSetEntityId()) 
+                        {
+                            Console.WriteLine("                    EntityId");
+                            Console.WriteLine("                        {0}", firstTagging.EntityId);
+                        }
+                        if (firstTagging.IsSetUserId()) 
+                        {
+                            Console.WriteLine("                    UserId");
+                            Console.WriteLine("                        {0}", firstTagging.UserId);
+                        }
+                        if (firstTagging.IsSetTime()) 
+                        {
+                            Console.WriteLine("                    Time");
+                            Console.WriteLine("                        {0}", firstTagging.Time);
+                        }
+                    } 
+                    if (tags.IsSetLastTagging()) 
+                    {
+                        Console.WriteLine("                LastTagging");
+                        Tagging  lastTagging = tags.LastTagging;
+                        if (lastTagging.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", lastTagging.Name);
+                        }
+                        if (lastTagging.IsSetEntityId()) 
+                        {
+                            Console.WriteLine("                    EntityId");
+                            Console.WriteLine("                        {0}", lastTagging.EntityId);
+                        }
+                        if (lastTagging.IsSetUserId()) 
+                        {
+                            Console.WriteLine("                    UserId");
+                            Console.WriteLine("                        {0}", lastTagging.UserId);
+                        }
+                        if (lastTagging.IsSetTime()) 
+                        {
+                            Console.WriteLine("                    Time");
+                            Console.WriteLine("                        {0}", lastTagging.Time);
+                        }
+                    } 
+                    List<Tag> tagList = tags.Tag;
+                    foreach (Tag tag in tagList) 
+                    {
+                        Console.WriteLine("                Tag");
+                        if (tag.IsSetName()) 
+                        {
+                            Console.WriteLine("                    Name");
+                            Console.WriteLine("                        {0}", tag.Name);
+                        }
+                        if (tag.IsSetTagType()) 
+                        {
+                            Console.WriteLine("                    TagType");
+                            Console.WriteLine("                        {0}", tag.TagType);
+                        }
+                        if (tag.IsSetDistinctItems()) 
+                        {
+                            Console.WriteLine("                    DistinctItems");
+                            Console.WriteLine("                        {0}", tag.DistinctItems);
+                        }
+                        if (tag.IsSetDistinctUsers()) 
+                        {
+                            Console.WriteLine("                    DistinctUsers");
+                            Console.WriteLine("                        {0}", tag.DistinctUsers);
+                        }
+                        if (tag.IsSetTotalUsages()) 
+                        {
+                            Console.WriteLine("                    TotalUsages");
+                            Console.WriteLine("                        {0}", tag.TotalUsages);
+                        }
+                        if (tag.IsSetFirstTagging()) 
+                        {
+                            Console.WriteLine("                    FirstTagging");
+                            Tagging  firstTagging = tag.FirstTagging;
+                            if (firstTagging.IsSetName()) 
+                            {
+                                Console.WriteLine("                        Name");
+                                Console.WriteLine("                            {0}", firstTagging.Name);
+                            }
+                            if (firstTagging.IsSetEntityId()) 
+                            {
+                                Console.WriteLine("                        EntityId");
+                                Console.WriteLine("                            {0}", firstTagging.EntityId);
+                            }
+                            if (firstTagging.IsSetUserId()) 
+                            {
+                                Console.WriteLine("                        UserId");
+                                Console.WriteLine("                            {0}", firstTagging.UserId);
+                            }
+                            if (firstTagging.IsSetTime()) 
+                            {
+                                Console.WriteLine("                        Time");
+                                Console.WriteLine("                            {0}", firstTagging.Time);
+                            }
+                        } 
+                        if (tag.IsSetLastTagging()) 
+                        {
+                            Console.WriteLine("                    LastTagging");
+                            Tagging  lastTagging = tag.LastTagging;
+                            if (lastTagging.IsSetName()) 
+                            {
+                                Console.WriteLine("                        Name");
+                                Console.WriteLine("                            {0}", lastTagging.Name);
+                            }
+                            if (lastTagging.IsSetEntityId()) 
+                            {
+                                Console.WriteLine("                        EntityId");
+                                Console.WriteLine("                            {0}", lastTagging.EntityId);
+                            }
+                            if (lastTagging.IsSetUserId()) 
+                            {
+                                Console.WriteLine("                        UserId");
+                                Console.WriteLine("                            {0}", lastTagging.UserId);
+                            }
+                            if (lastTagging.IsSetTime()) 
+                            {
+                                Console.WriteLine("                        Time");
+                                Console.WriteLine("                            {0}", lastTagging.Time);
+                            }
+                        } 
+                        List<TaggedItems> taggedItemsList = tag.TaggedItems;
+                        foreach (TaggedItems taggedItems in taggedItemsList) 
+                        {
+                            Console.WriteLine("                    TaggedItems");
+                            if (taggedItems.IsSetDistinctUsers()) 
+                            {
+                                Console.WriteLine("                        DistinctUsers");
+                                Console.WriteLine("                            {0}", taggedItems.DistinctUsers);
+                            }
+                            if (taggedItems.IsSetTotalUsages()) 
+                            {
+                                Console.WriteLine("                        TotalUsages");
+                                Console.WriteLine("                            {0}", taggedItems.TotalUsages);
+                            }
+                            if (taggedItems.IsSetFirstTagging()) 
+                            {
+                                Console.WriteLine("                        FirstTagging");
+                                Tagging  firstTagging = taggedItems.FirstTagging;
+                                if (firstTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", firstTagging.Name);
+                                }
+                                if (firstTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", firstTagging.EntityId);
+                                }
+                                if (firstTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", firstTagging.UserId);
+                                }
+                                if (firstTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", firstTagging.Time);
+                                }
+                            } 
+                            if (taggedItems.IsSetLastTagging()) 
+                            {
+                                Console.WriteLine("                        LastTagging");
+                                Tagging  lastTagging = taggedItems.LastTagging;
+                                if (lastTagging.IsSetName()) 
+                                {
+                                    Console.WriteLine("                            Name");
+                                    Console.WriteLine("                                {0}", lastTagging.Name);
+                                }
+                                if (lastTagging.IsSetEntityId()) 
+                                {
+                                    Console.WriteLine("                            EntityId");
+                                    Console.WriteLine("                                {0}", lastTagging.EntityId);
+                                }
+                                if (lastTagging.IsSetUserId()) 
+                                {
+                                    Console.WriteLine("                            UserId");
+                                    Console.WriteLine("                                {0}", lastTagging.UserId);
+                                }
+                                if (lastTagging.IsSetTime()) 
+                                {
+                                    Console.WriteLine("                            Time");
+                                    Console.WriteLine("                                {0}", lastTagging.Time);
+                                }
+                            } 
+                            if (taggedItems.IsSetItem()) 
+                            {
+                                Console.WriteLine("                        Item");
+                                Item  item = taggedItems.Item;
+                                if (item.IsSetAlternateVersions()) 
+                                {
+                                    Console.WriteLine("                            AlternateVersions");
+                                    AlternateVersions  alternateVersions = item.AlternateVersions;
+                                    List<AlternateVersion> alternateVersionList = alternateVersions.AlternateVersion;
+                                    foreach (AlternateVersion alternateVersion in alternateVersionList) 
+                                    {
+                                        Console.WriteLine("                                AlternateVersion");
+                                        if (alternateVersion.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", alternateVersion.ASIN);
+                                        }
+                                        if (alternateVersion.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", alternateVersion.Title);
+                                        }
+                                        if (alternateVersion.IsSetBinding()) 
+                                        {
+                                            Console.WriteLine("                                    Binding");
+                                            Console.WriteLine("                                        {0}", alternateVersion.Binding);
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", item.ASIN);
+                                }
+                                if (item.IsSetParentASIN()) 
+                                {
+                                    Console.WriteLine("                            ParentASIN");
+                                    Console.WriteLine("                                {0}", item.ParentASIN);
+                                }
+                                if (item.IsSetDetailPageURL()) 
+                                {
+                                    Console.WriteLine("                            DetailPageURL");
+                                    Console.WriteLine("                                {0}", item.DetailPageURL);
+                                }
+                                if (item.IsSetSalesRank()) 
+                                {
+                                    Console.WriteLine("                            SalesRank");
+                                    Console.WriteLine("                                {0}", item.SalesRank);
+                                }
+                                if (item.IsSetSmallImage()) 
+                                {
+                                    Console.WriteLine("                            SmallImage");
+                                    Image  smallImage = item.SmallImage;
+                                    if (smallImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", smallImage.URL);
+                                    }
+                                    if (smallImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = smallImage.Height;
+                                    } 
+                                    if (smallImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = smallImage.Width;
+                                    } 
+                                    if (smallImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", smallImage.IsVerified);
+                                    }
+                                } 
+                                if (item.IsSetMediumImage()) 
+                                {
+                                    Console.WriteLine("                            MediumImage");
+                                    Image  mediumImage = item.MediumImage;
+                                    if (mediumImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", mediumImage.URL);
+                                    }
+                                    if (mediumImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = mediumImage.Height;
+                                    } 
+                                    if (mediumImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = mediumImage.Width;
+                                    } 
+                                    if (mediumImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", mediumImage.IsVerified);
+                                    }
+                                } 
+                                if (item.IsSetLargeImage()) 
+                                {
+                                    Console.WriteLine("                            LargeImage");
+                                    Image  largeImage = item.LargeImage;
+                                    if (largeImage.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", largeImage.URL);
+                                    }
+                                    if (largeImage.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = largeImage.Height;
+                                    } 
+                                    if (largeImage.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = largeImage.Width;
+                                    } 
+                                    if (largeImage.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", largeImage.IsVerified);
+                                    }
+                                } 
+                                List<ImageSets> imageSetsList = item.ImageSets;
+                                foreach (ImageSets imageSets in imageSetsList) 
+                                {
+                                    Console.WriteLine("                            ImageSets");
+                                    if (imageSets.IsSetMerchantId()) 
+                                    {
+                                        Console.WriteLine("                                MerchantId");
+                                        Console.WriteLine("                                    {0}", imageSets.MerchantId);
+                                    }
+                                    List<ImageSet> imageSetList = imageSets.ImageSet;
+                                    foreach (ImageSet imageSet in imageSetList) 
+                                    {
+                                        Console.WriteLine("                                ImageSet");
+                                        if (imageSet.IsSetSwatchImage()) 
+                                        {
+                                            Console.WriteLine("                                    SwatchImage");
+                                            Image  swatchImage = imageSet.SwatchImage;
+                                            if (swatchImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", swatchImage.URL);
+                                            }
+                                            if (swatchImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = swatchImage.Height;
+                                            } 
+                                            if (swatchImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = swatchImage.Width;
+                                            } 
+                                            if (swatchImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", swatchImage.IsVerified);
+                                            }
+                                        } 
+                                        if (imageSet.IsSetSmallImage()) 
+                                        {
+                                            Console.WriteLine("                                    SmallImage");
+                                            Image  smallImage = imageSet.SmallImage;
+                                            if (smallImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", smallImage.URL);
+                                            }
+                                            if (smallImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = smallImage.Height;
+                                            } 
+                                            if (smallImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = smallImage.Width;
+                                            } 
+                                            if (smallImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", smallImage.IsVerified);
+                                            }
+                                        } 
+                                        if (imageSet.IsSetThumbnailImage()) 
+                                        {
+                                            Console.WriteLine("                                    ThumbnailImage");
+                                            Image  thumbnailImage = imageSet.ThumbnailImage;
+                                            if (thumbnailImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", thumbnailImage.URL);
+                                            }
+                                            if (thumbnailImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = thumbnailImage.Height;
+                                            } 
+                                            if (thumbnailImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = thumbnailImage.Width;
+                                            } 
+                                            if (thumbnailImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", thumbnailImage.IsVerified);
+                                            }
+                                        } 
+                                        if (imageSet.IsSetTinyImage()) 
+                                        {
+                                            Console.WriteLine("                                    TinyImage");
+                                            Image  tinyImage = imageSet.TinyImage;
+                                            if (tinyImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", tinyImage.URL);
+                                            }
+                                            if (tinyImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = tinyImage.Height;
+                                            } 
+                                            if (tinyImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = tinyImage.Width;
+                                            } 
+                                            if (tinyImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", tinyImage.IsVerified);
+                                            }
+                                        } 
+                                        if (imageSet.IsSetMediumImage()) 
+                                        {
+                                            Console.WriteLine("                                    MediumImage");
+                                            Image  mediumImage = imageSet.MediumImage;
+                                            if (mediumImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", mediumImage.URL);
+                                            }
+                                            if (mediumImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = mediumImage.Height;
+                                            } 
+                                            if (mediumImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = mediumImage.Width;
+                                            } 
+                                            if (mediumImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", mediumImage.IsVerified);
+                                            }
+                                        } 
+                                        if (imageSet.IsSetLargeImage()) 
+                                        {
+                                            Console.WriteLine("                                    LargeImage");
+                                            Image  largeImage = imageSet.LargeImage;
+                                            if (largeImage.IsSetURL()) 
+                                            {
+                                                Console.WriteLine("                                        URL");
+                                                Console.WriteLine("                                            {0}", largeImage.URL);
+                                            }
+                                            if (largeImage.IsSetHeight()) 
+                                            {
+                                                Console.WriteLine("                                        Height");
+                                                DecimalWithUnits  height = largeImage.Height;
+                                            } 
+                                            if (largeImage.IsSetWidth()) 
+                                            {
+                                                Console.WriteLine("                                        Width");
+                                                DecimalWithUnits  width = largeImage.Width;
+                                            } 
+                                            if (largeImage.IsSetIsVerified()) 
+                                            {
+                                                Console.WriteLine("                                        IsVerified");
+                                                Console.WriteLine("                                            {0}", largeImage.IsVerified);
+                                            }
+                                        } 
+                                    }
+                                }
+                                if (item.IsSetItemAttributes()) 
+                                {
+                                    Console.WriteLine("                            ItemAttributes");
+                                    ItemAttributes  itemAttributes = item.ItemAttributes;
+                                    List<String> actorList  =  itemAttributes.Actor;
+                                    foreach (String actor in actorList) 
+                                    { 
+                                        Console.WriteLine("                                Actor");
+                                        Console.WriteLine("                                    {0}", actor);
+                                    }	
+                                    if (itemAttributes.IsSetAddress()) 
+                                    {
+                                        Console.WriteLine("                                Address");
+                                        Address  address = itemAttributes.Address;
+                                        if (address.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", address.Name);
+                                        }
+                                        if (address.IsSetAddress1()) 
+                                        {
+                                            Console.WriteLine("                                    Address1");
+                                            Console.WriteLine("                                        {0}", address.Address1);
+                                        }
+                                        if (address.IsSetAddress2()) 
+                                        {
+                                            Console.WriteLine("                                    Address2");
+                                            Console.WriteLine("                                        {0}", address.Address2);
+                                        }
+                                        if (address.IsSetAddress3()) 
+                                        {
+                                            Console.WriteLine("                                    Address3");
+                                            Console.WriteLine("                                        {0}", address.Address3);
+                                        }
+                                        if (address.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", address.City);
+                                        }
+                                        if (address.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", address.State);
+                                        }
+                                        if (address.IsSetPostalCode()) 
+                                        {
+                                            Console.WriteLine("                                    PostalCode");
+                                            Console.WriteLine("                                        {0}", address.PostalCode);
+                                        }
+                                        if (address.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", address.Country);
+                                        }
+                                    } 
+                                    List<String> ageList  =  itemAttributes.Age;
+                                    foreach (String age in ageList) 
+                                    { 
+                                        Console.WriteLine("                                Age");
+                                        Console.WriteLine("                                    {0}", age);
+                                    }	
+                                    if (itemAttributes.IsSetAmazonMaximumAge()) 
+                                    {
+                                        Console.WriteLine("                                AmazonMaximumAge");
+                                        DecimalWithUnits  amazonMaximumAge = itemAttributes.AmazonMaximumAge;
+                                    } 
+                                    if (itemAttributes.IsSetAmazonMinimumAge()) 
+                                    {
+                                        Console.WriteLine("                                AmazonMinimumAge");
+                                        DecimalWithUnits  amazonMinimumAge = itemAttributes.AmazonMinimumAge;
+                                    } 
+                                    if (itemAttributes.IsSetAnalogVideoFormat()) 
+                                    {
+                                        Console.WriteLine("                                AnalogVideoFormat");
+                                        Console.WriteLine("                                    {0}", itemAttributes.AnalogVideoFormat);
+                                    }
+                                    if (itemAttributes.IsSetApertureModes()) 
+                                    {
+                                        Console.WriteLine("                                ApertureModes");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ApertureModes);
+                                    }
+                                    List<String> artistList  =  itemAttributes.Artist;
+                                    foreach (String artist in artistList) 
+                                    { 
+                                        Console.WriteLine("                                Artist");
+                                        Console.WriteLine("                                    {0}", artist);
+                                    }	
+                                    if (itemAttributes.IsSetAspectRatio()) 
+                                    {
+                                        Console.WriteLine("                                AspectRatio");
+                                        Console.WriteLine("                                    {0}", itemAttributes.AspectRatio);
+                                    }
+                                    if (itemAttributes.IsSetAssemblyInstructions()) 
+                                    {
+                                        Console.WriteLine("                                AssemblyInstructions");
+                                        Console.WriteLine("                                    {0}", itemAttributes.AssemblyInstructions);
+                                    }
+                                    if (itemAttributes.IsSetAssemblyRequired()) 
+                                    {
+                                        Console.WriteLine("                                AssemblyRequired");
+                                        Console.WriteLine("                                    {0}", itemAttributes.AssemblyRequired);
+                                    }
+                                    if (itemAttributes.IsSetAudienceRating()) 
+                                    {
+                                        Console.WriteLine("                                AudienceRating");
+                                        Console.WriteLine("                                    {0}", itemAttributes.AudienceRating);
+                                    }
+                                    List<String> audioFormatList  =  itemAttributes.AudioFormat;
+                                    foreach (String audioFormat in audioFormatList) 
+                                    { 
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", audioFormat);
+                                    }	
+                                    List<String> authorList  =  itemAttributes.Author;
+                                    foreach (String author in authorList) 
+                                    { 
+                                        Console.WriteLine("                                Author");
+                                        Console.WriteLine("                                    {0}", author);
+                                    }	
+                                    if (itemAttributes.IsSetBackFinding()) 
+                                    {
+                                        Console.WriteLine("                                BackFinding");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BackFinding);
+                                    }
+                                    if (itemAttributes.IsSetBandMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                BandMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BandMaterialType);
+                                    }
+                                    if (itemAttributes.IsSetBatteriesIncluded()) 
+                                    {
+                                        Console.WriteLine("                                BatteriesIncluded");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BatteriesIncluded);
+                                    }
+                                    if (itemAttributes.IsSetBatteriesRequired()) 
+                                    {
+                                        Console.WriteLine("                                BatteriesRequired");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BatteriesRequired);
+                                    }
+                                    if (itemAttributes.IsSetBatteries()) 
+                                    {
+                                        Console.WriteLine("                                Batteries");
+                                        NonNegativeIntegerWithUnits  batteries = itemAttributes.Batteries;
+                                    } 
+                                    if (itemAttributes.IsSetBatteryDescription()) 
+                                    {
+                                        Console.WriteLine("                                BatteryDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BatteryDescription);
+                                    }
+                                    if (itemAttributes.IsSetBatteryType()) 
+                                    {
+                                        Console.WriteLine("                                BatteryType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BatteryType);
+                                    }
+                                    if (itemAttributes.IsSetBezelMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                BezelMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.BezelMaterialType);
+                                    }
+                                    if (itemAttributes.IsSetBinding()) 
+                                    {
+                                        Console.WriteLine("                                Binding");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Binding);
+                                    }
+                                    if (itemAttributes.IsSetBrand()) 
+                                    {
+                                        Console.WriteLine("                                Brand");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Brand);
+                                    }
+                                    if (itemAttributes.IsSetCalendarType()) 
+                                    {
+                                        Console.WriteLine("                                CalendarType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CalendarType);
+                                    }
+                                    List<String> cameraManualFeaturesList  =  itemAttributes.CameraManualFeatures;
+                                    foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                    { 
+                                        Console.WriteLine("                                CameraManualFeatures");
+                                        Console.WriteLine("                                    {0}", cameraManualFeatures);
+                                    }	
+                                    if (itemAttributes.IsSetCaseDiameter()) 
+                                    {
+                                        Console.WriteLine("                                CaseDiameter");
+                                        DecimalWithUnits  caseDiameter = itemAttributes.CaseDiameter;
+                                    } 
+                                    if (itemAttributes.IsSetCaseMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                CaseMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CaseMaterialType);
+                                    }
+                                    if (itemAttributes.IsSetCaseThickness()) 
+                                    {
+                                        Console.WriteLine("                                CaseThickness");
+                                        DecimalWithUnits  caseThickness = itemAttributes.CaseThickness;
+                                    } 
+                                    if (itemAttributes.IsSetCaseType()) 
+                                    {
+                                        Console.WriteLine("                                CaseType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CaseType);
+                                    }
+                                    if (itemAttributes.IsSetCatalogNumber()) 
+                                    {
+                                        Console.WriteLine("                                CatalogNumber");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CatalogNumber);
+                                    }
+                                    List<String> categoryList  =  itemAttributes.Category;
+                                    foreach (String category in categoryList) 
+                                    { 
+                                        Console.WriteLine("                                Category");
+                                        Console.WriteLine("                                    {0}", category);
+                                    }	
+                                    List<String> categoryBinList  =  itemAttributes.CategoryBin;
+                                    foreach (String categoryBin in categoryBinList) 
+                                    { 
+                                        Console.WriteLine("                                CategoryBin");
+                                        Console.WriteLine("                                    {0}", categoryBin);
+                                    }	
+                                    if (itemAttributes.IsSetCDRWDescription()) 
+                                    {
+                                        Console.WriteLine("                                CDRWDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CDRWDescription);
+                                    }
+                                    if (itemAttributes.IsSetChainType()) 
+                                    {
+                                        Console.WriteLine("                                ChainType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ChainType);
+                                    }
+                                    List<String> characterList  =  itemAttributes.Character;
+                                    foreach (String character in characterList) 
+                                    { 
+                                        Console.WriteLine("                                Character");
+                                        Console.WriteLine("                                    {0}", character);
+                                    }	
+                                    if (itemAttributes.IsSetCEROAgeRating()) 
+                                    {
+                                        Console.WriteLine("                                CEROAgeRating");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CEROAgeRating);
+                                    }
+                                    if (itemAttributes.IsSetClaspType()) 
+                                    {
+                                        Console.WriteLine("                                ClaspType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ClaspType);
+                                    }
+                                    if (itemAttributes.IsSetClothingSize()) 
+                                    {
+                                        Console.WriteLine("                                ClothingSize");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ClothingSize);
+                                    }
+                                    if (itemAttributes.IsSetClubType()) 
+                                    {
+                                        Console.WriteLine("                                ClubType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ClubType);
+                                    }
+                                    if (itemAttributes.IsSetColor()) 
+                                    {
+                                        Console.WriteLine("                                Color");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Color);
+                                    }
+                                    if (itemAttributes.IsSetCompatibility()) 
+                                    {
+                                        Console.WriteLine("                                Compatibility");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Compatibility);
+                                    }
+                                    List<String> compatibleDevicesList  =  itemAttributes.CompatibleDevices;
+                                    foreach (String compatibleDevices in compatibleDevicesList) 
+                                    { 
+                                        Console.WriteLine("                                CompatibleDevices");
+                                        Console.WriteLine("                                    {0}", compatibleDevices);
+                                    }	
+                                    if (itemAttributes.IsSetComputerHardwareType()) 
+                                    {
+                                        Console.WriteLine("                                ComputerHardwareType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ComputerHardwareType);
+                                    }
+                                    if (itemAttributes.IsSetComputerPlatform()) 
+                                    {
+                                        Console.WriteLine("                                ComputerPlatform");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ComputerPlatform);
+                                    }
+                                    if (itemAttributes.IsSetConnectivity()) 
+                                    {
+                                        Console.WriteLine("                                Connectivity");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Connectivity);
+                                    }
+                                    if (itemAttributes.IsSetContinuousShootingSpeed()) 
+                                    {
+                                        Console.WriteLine("                                ContinuousShootingSpeed");
+                                        DecimalWithUnits  continuousShootingSpeed = itemAttributes.ContinuousShootingSpeed;
+                                    } 
+                                    if (itemAttributes.IsSetCountry()) 
+                                    {
+                                        Console.WriteLine("                                Country");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Country);
+                                    }
+                                    if (itemAttributes.IsSetCPUManufacturer()) 
+                                    {
+                                        Console.WriteLine("                                CPUManufacturer");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CPUManufacturer);
+                                    }
+                                    if (itemAttributes.IsSetCPUSpeed()) 
+                                    {
+                                        Console.WriteLine("                                CPUSpeed");
+                                        DecimalWithUnits  CPUSpeed = itemAttributes.CPUSpeed;
+                                    } 
+                                    if (itemAttributes.IsSetCPUType()) 
+                                    {
+                                        Console.WriteLine("                                CPUType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.CPUType);
+                                    }
+                                    List<Creator> creatorList = itemAttributes.Creator;
+                                    foreach (Creator creator in creatorList) 
+                                    {
+                                        Console.WriteLine("                                Creator");
+                                    }
+                                    if (itemAttributes.IsSetCuisine()) 
+                                    {
+                                        Console.WriteLine("                                Cuisine");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Cuisine);
+                                    }
+                                    List<String> dataLinkProtocolList  =  itemAttributes.DataLinkProtocol;
+                                    foreach (String dataLinkProtocol in dataLinkProtocolList) 
+                                    { 
+                                        Console.WriteLine("                                DataLinkProtocol");
+                                        Console.WriteLine("                                    {0}", dataLinkProtocol);
+                                    }	
+                                    if (itemAttributes.IsSetDeliveryOption()) 
+                                    {
+                                        Console.WriteLine("                                DeliveryOption");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DeliveryOption);
+                                    }
+                                    if (itemAttributes.IsSetDelayBetweenShots()) 
+                                    {
+                                        Console.WriteLine("                                DelayBetweenShots");
+                                        DecimalWithUnits  delayBetweenShots = itemAttributes.DelayBetweenShots;
+                                    } 
+                                    if (itemAttributes.IsSetDepartment()) 
+                                    {
+                                        Console.WriteLine("                                Department");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Department);
+                                    }
+                                    if (itemAttributes.IsSetDeweyDecimalNumber()) 
+                                    {
+                                        Console.WriteLine("                                DeweyDecimalNumber");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DeweyDecimalNumber);
+                                    }
+                                    if (itemAttributes.IsSetDialColor()) 
+                                    {
+                                        Console.WriteLine("                                DialColor");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DialColor);
+                                    }
+                                    if (itemAttributes.IsSetDialWindowMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                DialWindowMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DialWindowMaterialType);
+                                    }
+                                    if (itemAttributes.IsSetDigitalZoom()) 
+                                    {
+                                        Console.WriteLine("                                DigitalZoom");
+                                        DecimalWithUnits  digitalZoom = itemAttributes.DigitalZoom;
+                                    } 
+                                    List<String> directorList  =  itemAttributes.Director;
+                                    foreach (String director in directorList) 
+                                    { 
+                                        Console.WriteLine("                                Director");
+                                        Console.WriteLine("                                    {0}", director);
+                                    }	
+                                    if (itemAttributes.IsSetDisplayColorSupport()) 
+                                    {
+                                        Console.WriteLine("                                DisplayColorSupport");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DisplayColorSupport);
+                                    }
+                                    if (itemAttributes.IsSetDisplaySize()) 
+                                    {
+                                        Console.WriteLine("                                DisplaySize");
+                                        DecimalWithUnits  displaySize = itemAttributes.DisplaySize;
+                                    } 
+                                    if (itemAttributes.IsSetDrumSetPieceQuantity()) 
+                                    {
+                                        Console.WriteLine("                                DrumSetPieceQuantity");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DrumSetPieceQuantity);
+                                    }
+                                    if (itemAttributes.IsSetDVDLayers()) 
+                                    {
+                                        Console.WriteLine("                                DVDLayers");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DVDLayers);
+                                    }
+                                    if (itemAttributes.IsSetDVDRWDescription()) 
+                                    {
+                                        Console.WriteLine("                                DVDRWDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DVDRWDescription);
+                                    }
+                                    if (itemAttributes.IsSetDVDSides()) 
+                                    {
+                                        Console.WriteLine("                                DVDSides");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DVDSides);
+                                    }
+                                    if (itemAttributes.IsSetDPCI()) 
+                                    {
+                                        Console.WriteLine("                                DPCI");
+                                        Console.WriteLine("                                    {0}", itemAttributes.DPCI);
+                                    }
+                                    if (itemAttributes.IsSetEAN()) 
+                                    {
+                                        Console.WriteLine("                                EAN");
+                                        Console.WriteLine("                                    {0}", itemAttributes.EAN);
+                                    }
+                                    if (itemAttributes.IsSetEdition()) 
+                                    {
+                                        Console.WriteLine("                                Edition");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Edition);
+                                    }
+                                    List<String> educationalFocusList  =  itemAttributes.EducationalFocus;
+                                    foreach (String educationalFocus in educationalFocusList) 
+                                    { 
+                                        Console.WriteLine("                                EducationalFocus");
+                                        Console.WriteLine("                                    {0}", educationalFocus);
+                                    }	
+                                    List<String> ethnicityList  =  itemAttributes.Ethnicity;
+                                    foreach (String ethnicity in ethnicityList) 
+                                    { 
+                                        Console.WriteLine("                                Ethnicity");
+                                        Console.WriteLine("                                    {0}", ethnicity);
+                                    }	
+                                    if (itemAttributes.IsSetESRBAgeRating()) 
+                                    {
+                                        Console.WriteLine("                                ESRBAgeRating");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ESRBAgeRating);
+                                    }
+                                    if (itemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                    {
+                                        Console.WriteLine("                                ExternalDisplaySupportDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ExternalDisplaySupportDescription);
+                                    }
+                                    if (itemAttributes.IsSetFabricType()) 
+                                    {
+                                        Console.WriteLine("                                FabricType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.FabricType);
+                                    }
+                                    if (itemAttributes.IsSetFaxNumber()) 
+                                    {
+                                        Console.WriteLine("                                FaxNumber");
+                                        Console.WriteLine("                                    {0}", itemAttributes.FaxNumber);
+                                    }
+                                    List<String> featureList  =  itemAttributes.Feature;
+                                    foreach (String feature in featureList) 
+                                    { 
+                                        Console.WriteLine("                                Feature");
+                                        Console.WriteLine("                                    {0}", feature);
+                                    }	
+                                    if (itemAttributes.IsSetFilmColorType()) 
+                                    {
+                                        Console.WriteLine("                                FilmColorType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.FilmColorType);
+                                    }
+                                    if (itemAttributes.IsSetFirstIssueLeadTime()) 
+                                    {
+                                        Console.WriteLine("                                FirstIssueLeadTime");
+                                        StringWithUnits  firstIssueLeadTime = itemAttributes.FirstIssueLeadTime;
+                                    } 
+                                    if (itemAttributes.IsSetFlavorName()) 
+                                    {
+                                        Console.WriteLine("                                FlavorName");
+                                        Console.WriteLine("                                    {0}", itemAttributes.FlavorName);
+                                    }
+                                    if (itemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                    {
+                                        Console.WriteLine("                                FloppyDiskDriveDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.FloppyDiskDriveDescription);
+                                    }
+                                    List<String> formatList  =  itemAttributes.Format;
+                                    foreach (String format in formatList) 
+                                    { 
+                                        Console.WriteLine("                                Format");
+                                        Console.WriteLine("                                    {0}", format);
+                                    }	
+                                    List<String> formFactorList  =  itemAttributes.FormFactor;
+                                    foreach (String formFactor in formFactorList) 
+                                    { 
+                                        Console.WriteLine("                                FormFactor");
+                                        Console.WriteLine("                                    {0}", formFactor);
+                                    }	
+                                    if (itemAttributes.IsSetGemType()) 
+                                    {
+                                        Console.WriteLine("                                GemType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GemType);
+                                    }
+                                    List<String> gemTypeSetElementList  =  itemAttributes.GemTypeSetElement;
+                                    foreach (String gemTypeSetElement in gemTypeSetElementList) 
+                                    { 
+                                        Console.WriteLine("                                GemTypeSetElement");
+                                        Console.WriteLine("                                    {0}", gemTypeSetElement);
+                                    }	
+                                    List<String> genderList  =  itemAttributes.Gender;
+                                    foreach (String gender in genderList) 
+                                    { 
+                                        Console.WriteLine("                                Gender");
+                                        Console.WriteLine("                                    {0}", gender);
+                                    }	
+                                    if (itemAttributes.IsSetGenre()) 
+                                    {
+                                        Console.WriteLine("                                Genre");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Genre);
+                                    }
+                                    if (itemAttributes.IsSetGLProductGroup()) 
+                                    {
+                                        Console.WriteLine("                                GLProductGroup");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GLProductGroup);
+                                    }
+                                    if (itemAttributes.IsSetGolfClubFlex()) 
+                                    {
+                                        Console.WriteLine("                                GolfClubFlex");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GolfClubFlex);
+                                    }
+                                    if (itemAttributes.IsSetGolfClubLoft()) 
+                                    {
+                                        Console.WriteLine("                                GolfClubLoft");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GolfClubLoft);
+                                    }
+                                    if (itemAttributes.IsSetGraphicsCardInterface()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsCardInterface");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GraphicsCardInterface);
+                                    }
+                                    if (itemAttributes.IsSetGraphicsDescription()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GraphicsDescription);
+                                    }
+                                    if (itemAttributes.IsSetGraphicsMemorySize()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsMemorySize");
+                                        DecimalWithUnits  graphicsMemorySize = itemAttributes.GraphicsMemorySize;
+                                    } 
+                                    if (itemAttributes.IsSetGuitarAttribute()) 
+                                    {
+                                        Console.WriteLine("                                GuitarAttribute");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GuitarAttribute);
+                                    }
+                                    if (itemAttributes.IsSetGuitarBridgeSystem()) 
+                                    {
+                                        Console.WriteLine("                                GuitarBridgeSystem");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GuitarBridgeSystem);
+                                    }
+                                    if (itemAttributes.IsSetGuitarPickThickness()) 
+                                    {
+                                        Console.WriteLine("                                GuitarPickThickness");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GuitarPickThickness);
+                                    }
+                                    if (itemAttributes.IsSetGuitarPickupConfiguration()) 
+                                    {
+                                        Console.WriteLine("                                GuitarPickupConfiguration");
+                                        Console.WriteLine("                                    {0}", itemAttributes.GuitarPickupConfiguration);
+                                    }
+                                    if (itemAttributes.IsSetHandOrientation()) 
+                                    {
+                                        Console.WriteLine("                                HandOrientation");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HandOrientation);
+                                    }
+                                    if (itemAttributes.IsSetHardDiskCount()) 
+                                    {
+                                        Console.WriteLine("                                HardDiskCount");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HardDiskCount);
+                                    }
+                                    if (itemAttributes.IsSetHardDiskSize()) 
+                                    {
+                                        Console.WriteLine("                                HardDiskSize");
+                                        DecimalWithUnits  hardDiskSize = itemAttributes.HardDiskSize;
+                                    } 
+                                    if (itemAttributes.IsSetHardDiskInterface()) 
+                                    {
+                                        Console.WriteLine("                                HardDiskInterface");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HardDiskInterface);
+                                    }
+                                    if (itemAttributes.IsSetHardwarePlatform()) 
+                                    {
+                                        Console.WriteLine("                                HardwarePlatform");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HardwarePlatform);
+                                    }
+                                    if (itemAttributes.IsSetHasAutoFocus()) 
+                                    {
+                                        Console.WriteLine("                                HasAutoFocus");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasAutoFocus);
+                                    }
+                                    if (itemAttributes.IsSetHasBurstMode()) 
+                                    {
+                                        Console.WriteLine("                                HasBurstMode");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasBurstMode);
+                                    }
+                                    if (itemAttributes.IsSetHasInCameraEditing()) 
+                                    {
+                                        Console.WriteLine("                                HasInCameraEditing");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasInCameraEditing);
+                                    }
+                                    if (itemAttributes.IsSetHasRedEyeReduction()) 
+                                    {
+                                        Console.WriteLine("                                HasRedEyeReduction");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasRedEyeReduction);
+                                    }
+                                    if (itemAttributes.IsSetHasSelfTimer()) 
+                                    {
+                                        Console.WriteLine("                                HasSelfTimer");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasSelfTimer);
+                                    }
+                                    if (itemAttributes.IsSetHasTripodMount()) 
+                                    {
+                                        Console.WriteLine("                                HasTripodMount");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasTripodMount);
+                                    }
+                                    if (itemAttributes.IsSetHasVideoOut()) 
+                                    {
+                                        Console.WriteLine("                                HasVideoOut");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasVideoOut);
+                                    }
+                                    if (itemAttributes.IsSetHasViewfinder()) 
+                                    {
+                                        Console.WriteLine("                                HasViewfinder");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HasViewfinder);
+                                    }
+                                    if (itemAttributes.IsSetHazardousMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                HazardousMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HazardousMaterialType);
+                                    }
+                                    if (itemAttributes.IsSetHoursOfOperation()) 
+                                    {
+                                        Console.WriteLine("                                HoursOfOperation");
+                                        Console.WriteLine("                                    {0}", itemAttributes.HoursOfOperation);
+                                    }
+                                    if (itemAttributes.IsSetIncludedSoftware()) 
+                                    {
+                                        Console.WriteLine("                                IncludedSoftware");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IncludedSoftware);
+                                    }
+                                    if (itemAttributes.IsSetIncludesMp3Player()) 
+                                    {
+                                        Console.WriteLine("                                IncludesMp3Player");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IncludesMp3Player);
+                                    }
+                                    if (itemAttributes.IsSetIngredients()) 
+                                    {
+                                        Console.WriteLine("                                Ingredients");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Ingredients);
+                                    }
+                                    List<String> ingredientsSetElementList  =  itemAttributes.IngredientsSetElement;
+                                    foreach (String ingredientsSetElement in ingredientsSetElementList) 
+                                    { 
+                                        Console.WriteLine("                                IngredientsSetElement");
+                                        Console.WriteLine("                                    {0}", ingredientsSetElement);
+                                    }	
+                                    if (itemAttributes.IsSetInstrumentKey()) 
+                                    {
+                                        Console.WriteLine("                                InstrumentKey");
+                                        Console.WriteLine("                                    {0}", itemAttributes.InstrumentKey);
+                                    }
+                                    List<String> interestList  =  itemAttributes.Interest;
+                                    foreach (String interest in interestList) 
+                                    { 
+                                        Console.WriteLine("                                Interest");
+                                        Console.WriteLine("                                    {0}", interest);
+                                    }	
+                                    if (itemAttributes.IsSetIsAdultProduct()) 
+                                    {
+                                        Console.WriteLine("                                IsAdultProduct");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsAdultProduct);
+                                    }
+                                    if (itemAttributes.IsSetIsAutographed()) 
+                                    {
+                                        Console.WriteLine("                                IsAutographed");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsAutographed);
+                                    }
+                                    if (itemAttributes.IsSetISBN()) 
+                                    {
+                                        Console.WriteLine("                                ISBN");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ISBN);
+                                    }
+                                    if (itemAttributes.IsSetIsFragile()) 
+                                    {
+                                        Console.WriteLine("                                IsFragile");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsFragile);
+                                    }
+                                    if (itemAttributes.IsSetIsLabCreated()) 
+                                    {
+                                        Console.WriteLine("                                IsLabCreated");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsLabCreated);
+                                    }
+                                    if (itemAttributes.IsSetIsMemorabilia()) 
+                                    {
+                                        Console.WriteLine("                                IsMemorabilia");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsMemorabilia);
+                                    }
+                                    if (itemAttributes.IsSetISOEquivalent()) 
+                                    {
+                                        Console.WriteLine("                                ISOEquivalent");
+                                        NonNegativeIntegerWithUnits  ISOEquivalent = itemAttributes.ISOEquivalent;
+                                    } 
+                                    if (itemAttributes.IsSetIsPreannounce()) 
+                                    {
+                                        Console.WriteLine("                                IsPreannounce");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IsPreannounce);
+                                    }
+                                    if (itemAttributes.IsSetIssuesPerYear()) 
+                                    {
+                                        Console.WriteLine("                                IssuesPerYear");
+                                        Console.WriteLine("                                    {0}", itemAttributes.IssuesPerYear);
+                                    }
+                                    if (itemAttributes.IsSetItemDimensions()) 
+                                    {
+                                        Console.WriteLine("                                ItemDimensions");
+                                        ItemDimensions  itemDimensions = itemAttributes.ItemDimensions;
+                                        if (itemDimensions.IsSetHeight()) 
+                                        {
+                                            Console.WriteLine("                                    Height");
+                                            DecimalWithUnits  height = itemDimensions.Height;
+                                        } 
+                                        if (itemDimensions.IsSetLength()) 
+                                        {
+                                            Console.WriteLine("                                    Length");
+                                            DecimalWithUnits  length = itemDimensions.Length;
+                                        } 
+                                        if (itemDimensions.IsSetWeight()) 
+                                        {
+                                            Console.WriteLine("                                    Weight");
+                                            DecimalWithUnits  weight = itemDimensions.Weight;
+                                        } 
+                                        if (itemDimensions.IsSetWidth()) 
+                                        {
+                                            Console.WriteLine("                                    Width");
+                                            DecimalWithUnits  width = itemDimensions.Width;
+                                        } 
+                                    } 
+                                    if (itemAttributes.IsSetKeyboardDescription()) 
+                                    {
+                                        Console.WriteLine("                                KeyboardDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.KeyboardDescription);
+                                    }
+                                    if (itemAttributes.IsSetLabel()) 
+                                    {
+                                        Console.WriteLine("                                Label");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Label);
+                                    }
+                                    List<String> languageNameList  =  itemAttributes.LanguageName;
+                                    foreach (String languageName in languageNameList) 
+                                    { 
+                                        Console.WriteLine("                                LanguageName");
+                                        Console.WriteLine("                                    {0}", languageName);
+                                    }	
+                                    if (itemAttributes.IsSetLanguages()) 
+                                    {
+                                        Console.WriteLine("                                Languages");
+                                        Languages  languages = itemAttributes.Languages;
+                                        List<Language> languageList = languages.Language;
+                                        foreach (Language language in languageList) 
+                                        {
+                                            Console.WriteLine("                                    Language");
+                                            if (language.IsSetName()) 
+                                            {
+                                                Console.WriteLine("                                        Name");
+                                                Console.WriteLine("                                            {0}", language.Name);
+                                            }
+                                            if (language.IsSetType()) 
+                                            {
+                                                Console.WriteLine("                                        Type");
+                                                Console.WriteLine("                                            {0}", language.Type);
+                                            }
+                                            if (language.IsSetAudioFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", language.AudioFormat);
+                                            }
+                                        }
+                                    } 
+                                    if (itemAttributes.IsSetLegalDisclaimer()) 
+                                    {
+                                        Console.WriteLine("                                LegalDisclaimer");
+                                        Console.WriteLine("                                    {0}", itemAttributes.LegalDisclaimer);
+                                    }
+                                    if (itemAttributes.IsSetLensType()) 
+                                    {
+                                        Console.WriteLine("                                LensType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.LensType);
+                                    }
+                                    if (itemAttributes.IsSetLineVoltage()) 
+                                    {
+                                        Console.WriteLine("                                LineVoltage");
+                                        Console.WriteLine("                                    {0}", itemAttributes.LineVoltage);
+                                    }
+                                    if (itemAttributes.IsSetListPrice()) 
+                                    {
+                                        Console.WriteLine("                                ListPrice");
+                                        Price  listPrice = itemAttributes.ListPrice;
+                                        if (listPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", listPrice.Amount);
+                                        }
+                                        if (listPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", listPrice.CurrencyCode);
+                                        }
+                                        if (listPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", listPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (itemAttributes.IsSetMacroFocusRange()) 
+                                    {
+                                        Console.WriteLine("                                MacroFocusRange");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MacroFocusRange);
+                                    }
+                                    if (itemAttributes.IsSetMagazineType()) 
+                                    {
+                                        Console.WriteLine("                                MagazineType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MagazineType);
+                                    }
+                                    if (itemAttributes.IsSetMalletHardness()) 
+                                    {
+                                        Console.WriteLine("                                MalletHardness");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MalletHardness);
+                                    }
+                                    if (itemAttributes.IsSetManufacturer()) 
+                                    {
+                                        Console.WriteLine("                                Manufacturer");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Manufacturer);
+                                    }
+                                    if (itemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerLaborWarrantyDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ManufacturerLaborWarrantyDescription);
+                                    }
+                                    if (itemAttributes.IsSetManufacturerMaximumAge()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerMaximumAge");
+                                        DecimalWithUnits  manufacturerMaximumAge = itemAttributes.ManufacturerMaximumAge;
+                                    } 
+                                    if (itemAttributes.IsSetManufacturerMinimumAge()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerMinimumAge");
+                                        DecimalWithUnits  manufacturerMinimumAge = itemAttributes.ManufacturerMinimumAge;
+                                    } 
+                                    if (itemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerPartsWarrantyDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ManufacturerPartsWarrantyDescription);
+                                    }
+                                    if (itemAttributes.IsSetMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                MaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MaterialType);
+                                    }
+                                    List<String> materialTypeSetElementList  =  itemAttributes.MaterialTypeSetElement;
+                                    foreach (String materialTypeSetElement in materialTypeSetElementList) 
+                                    { 
+                                        Console.WriteLine("                                MaterialTypeSetElement");
+                                        Console.WriteLine("                                    {0}", materialTypeSetElement);
+                                    }	
+                                    if (itemAttributes.IsSetMaximumAperture()) 
+                                    {
+                                        Console.WriteLine("                                MaximumAperture");
+                                        DecimalWithUnits  maximumAperture = itemAttributes.MaximumAperture;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumColorDepth()) 
+                                    {
+                                        Console.WriteLine("                                MaximumColorDepth");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MaximumColorDepth);
+                                    }
+                                    if (itemAttributes.IsSetMaximumFocalLength()) 
+                                    {
+                                        Console.WriteLine("                                MaximumFocalLength");
+                                        DecimalWithUnits  maximumFocalLength = itemAttributes.MaximumFocalLength;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumHighResolutionImages()) 
+                                    {
+                                        Console.WriteLine("                                MaximumHighResolutionImages");
+                                        NonNegativeIntegerWithUnits  maximumHighResolutionImages = itemAttributes.MaximumHighResolutionImages;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumHorizontalResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumHorizontalResolution");
+                                        NonNegativeIntegerWithUnits  maximumHorizontalResolution = itemAttributes.MaximumHorizontalResolution;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumLowResolutionImages()) 
+                                    {
+                                        Console.WriteLine("                                MaximumLowResolutionImages");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MaximumLowResolutionImages);
+                                    }
+                                    if (itemAttributes.IsSetMaximumResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumResolution");
+                                        DecimalWithUnits  maximumResolution = itemAttributes.MaximumResolution;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumShutterSpeed()) 
+                                    {
+                                        Console.WriteLine("                                MaximumShutterSpeed");
+                                        DecimalWithUnits  maximumShutterSpeed = itemAttributes.MaximumShutterSpeed;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumVerticalResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumVerticalResolution");
+                                        NonNegativeIntegerWithUnits  maximumVerticalResolution = itemAttributes.MaximumVerticalResolution;
+                                    } 
+                                    if (itemAttributes.IsSetMaximumWeightRecommendation()) 
+                                    {
+                                        Console.WriteLine("                                MaximumWeightRecommendation");
+                                        DecimalWithUnits  maximumWeightRecommendation = itemAttributes.MaximumWeightRecommendation;
+                                    } 
+                                    if (itemAttributes.IsSetMediaType()) 
+                                    {
+                                        Console.WriteLine("                                MediaType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MediaType);
+                                    }
+                                    if (itemAttributes.IsSetMemorySlotsAvailable()) 
+                                    {
+                                        Console.WriteLine("                                MemorySlotsAvailable");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MemorySlotsAvailable);
+                                    }
+                                    if (itemAttributes.IsSetMetalStamp()) 
+                                    {
+                                        Console.WriteLine("                                MetalStamp");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MetalStamp);
+                                    }
+                                    if (itemAttributes.IsSetMetalType()) 
+                                    {
+                                        Console.WriteLine("                                MetalType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MetalType);
+                                    }
+                                    if (itemAttributes.IsSetMiniMovieDescription()) 
+                                    {
+                                        Console.WriteLine("                                MiniMovieDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MiniMovieDescription);
+                                    }
+                                    if (itemAttributes.IsSetMinimumFocalLength()) 
+                                    {
+                                        Console.WriteLine("                                MinimumFocalLength");
+                                        DecimalWithUnits  minimumFocalLength = itemAttributes.MinimumFocalLength;
+                                    } 
+                                    if (itemAttributes.IsSetMinimumShutterSpeed()) 
+                                    {
+                                        Console.WriteLine("                                MinimumShutterSpeed");
+                                        DecimalWithUnits  minimumShutterSpeed = itemAttributes.MinimumShutterSpeed;
+                                    } 
+                                    if (itemAttributes.IsSetModel()) 
+                                    {
+                                        Console.WriteLine("                                Model");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Model);
+                                    }
+                                    if (itemAttributes.IsSetModelYear()) 
+                                    {
+                                        Console.WriteLine("                                ModelYear");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ModelYear);
+                                    }
+                                    if (itemAttributes.IsSetModemDescription()) 
+                                    {
+                                        Console.WriteLine("                                ModemDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ModemDescription);
+                                    }
+                                    if (itemAttributes.IsSetMonitorSize()) 
+                                    {
+                                        Console.WriteLine("                                MonitorSize");
+                                        DecimalWithUnits  monitorSize = itemAttributes.MonitorSize;
+                                    } 
+                                    if (itemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                    {
+                                        Console.WriteLine("                                MonitorViewableDiagonalSize");
+                                        DecimalWithUnits  monitorViewableDiagonalSize = itemAttributes.MonitorViewableDiagonalSize;
+                                    } 
+                                    if (itemAttributes.IsSetMouseDescription()) 
+                                    {
+                                        Console.WriteLine("                                MouseDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MouseDescription);
+                                    }
+                                    if (itemAttributes.IsSetMPN()) 
+                                    {
+                                        Console.WriteLine("                                MPN");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MPN);
+                                    }
+                                    if (itemAttributes.IsSetMusicalStyle()) 
+                                    {
+                                        Console.WriteLine("                                MusicalStyle");
+                                        Console.WriteLine("                                    {0}", itemAttributes.MusicalStyle);
+                                    }
+                                    if (itemAttributes.IsSetNativeResolution()) 
+                                    {
+                                        Console.WriteLine("                                NativeResolution");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NativeResolution);
+                                    }
+                                    if (itemAttributes.IsSetNeighborhood()) 
+                                    {
+                                        Console.WriteLine("                                Neighborhood");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Neighborhood);
+                                    }
+                                    if (itemAttributes.IsSetNetworkInterfaceDescription()) 
+                                    {
+                                        Console.WriteLine("                                NetworkInterfaceDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NetworkInterfaceDescription);
+                                    }
+                                    if (itemAttributes.IsSetNotebookDisplayTechnology()) 
+                                    {
+                                        Console.WriteLine("                                NotebookDisplayTechnology");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NotebookDisplayTechnology);
+                                    }
+                                    if (itemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                    {
+                                        Console.WriteLine("                                NotebookPointingDeviceDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NotebookPointingDeviceDescription);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfDiscs()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfDiscs");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfDiscs);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfIssues()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfIssues");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfIssues);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfItems()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfItems");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfItems);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfKeys()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfKeys");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfKeys);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfPages()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfPages");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfPages);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfPearls()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfPearls");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfPearls);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfRapidFireShots()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfRapidFireShots");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfRapidFireShots);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfStones()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfStones");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfStones);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfStrings()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfStrings");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfStrings);
+                                    }
+                                    if (itemAttributes.IsSetNumberOfTracks()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfTracks");
+                                        Console.WriteLine("                                    {0}", itemAttributes.NumberOfTracks);
+                                    }
+                                    if (itemAttributes.IsSetOperatingSystem()) 
+                                    {
+                                        Console.WriteLine("                                OperatingSystem");
+                                        Console.WriteLine("                                    {0}", itemAttributes.OperatingSystem);
+                                    }
+                                    if (itemAttributes.IsSetOpticalSensorResolution()) 
+                                    {
+                                        Console.WriteLine("                                OpticalSensorResolution");
+                                        DecimalWithUnits  opticalSensorResolution = itemAttributes.OpticalSensorResolution;
+                                    } 
+                                    if (itemAttributes.IsSetOpticalZoom()) 
+                                    {
+                                        Console.WriteLine("                                OpticalZoom");
+                                        DecimalWithUnits  opticalZoom = itemAttributes.OpticalZoom;
+                                    } 
+                                    if (itemAttributes.IsSetOriginalReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                OriginalReleaseDate");
+                                        Console.WriteLine("                                    {0}", itemAttributes.OriginalReleaseDate);
+                                    }
+                                    if (itemAttributes.IsSetOutputWattage()) 
+                                    {
+                                        Console.WriteLine("                                OutputWattage");
+                                        Console.WriteLine("                                    {0}", itemAttributes.OutputWattage);
+                                    }
+                                    if (itemAttributes.IsSetPackageDimensions()) 
+                                    {
+                                        Console.WriteLine("                                PackageDimensions");
+                                        PackageDimensions  packageDimensions = itemAttributes.PackageDimensions;
+                                        if (packageDimensions.IsSetHeight()) 
+                                        {
+                                            Console.WriteLine("                                    Height");
+                                            DecimalWithUnits  height = packageDimensions.Height;
+                                        } 
+                                        if (packageDimensions.IsSetLength()) 
+                                        {
+                                            Console.WriteLine("                                    Length");
+                                            DecimalWithUnits  length = packageDimensions.Length;
+                                        } 
+                                        if (packageDimensions.IsSetWeight()) 
+                                        {
+                                            Console.WriteLine("                                    Weight");
+                                            DecimalWithUnits  weight = packageDimensions.Weight;
+                                        } 
+                                        if (packageDimensions.IsSetWidth()) 
+                                        {
+                                            Console.WriteLine("                                    Width");
+                                            DecimalWithUnits  width = packageDimensions.Width;
+                                        } 
+                                    } 
+                                    if (itemAttributes.IsSetPackageQuantity()) 
+                                    {
+                                        Console.WriteLine("                                PackageQuantity");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PackageQuantity);
+                                    }
+                                    List<String> pantLengthList  =  itemAttributes.PantLength;
+                                    foreach (String pantLength in pantLengthList) 
+                                    { 
+                                        Console.WriteLine("                                PantLength");
+                                        Console.WriteLine("                                    {0}", pantLength);
+                                    }	
+                                    List<String> pantSizeList  =  itemAttributes.PantSize;
+                                    foreach (String pantSize in pantSizeList) 
+                                    { 
+                                        Console.WriteLine("                                PantSize");
+                                        Console.WriteLine("                                    {0}", pantSize);
+                                    }	
+                                    if (itemAttributes.IsSetPearlLustre()) 
+                                    {
+                                        Console.WriteLine("                                PearlLustre");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlLustre);
+                                    }
+                                    if (itemAttributes.IsSetPearlMinimumColor()) 
+                                    {
+                                        Console.WriteLine("                                PearlMinimumColor");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlMinimumColor);
+                                    }
+                                    if (itemAttributes.IsSetPearlShape()) 
+                                    {
+                                        Console.WriteLine("                                PearlShape");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlShape);
+                                    }
+                                    if (itemAttributes.IsSetPearlStringingMethod()) 
+                                    {
+                                        Console.WriteLine("                                PearlStringingMethod");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlStringingMethod);
+                                    }
+                                    if (itemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                    {
+                                        Console.WriteLine("                                PearlSurfaceBlemishes");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlSurfaceBlemishes);
+                                    }
+                                    if (itemAttributes.IsSetPearlType()) 
+                                    {
+                                        Console.WriteLine("                                PearlType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlType);
+                                    }
+                                    if (itemAttributes.IsSetPearlUniformity()) 
+                                    {
+                                        Console.WriteLine("                                PearlUniformity");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PearlUniformity);
+                                    }
+                                    if (itemAttributes.IsSetPhoneNumber()) 
+                                    {
+                                        Console.WriteLine("                                PhoneNumber");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PhoneNumber);
+                                    }
+                                    List<String> photoFlashTypeList  =  itemAttributes.PhotoFlashType;
+                                    foreach (String photoFlashType in photoFlashTypeList) 
+                                    { 
+                                        Console.WriteLine("                                PhotoFlashType");
+                                        Console.WriteLine("                                    {0}", photoFlashType);
+                                    }	
+                                    List<String> pictureFormatList  =  itemAttributes.PictureFormat;
+                                    foreach (String pictureFormat in pictureFormatList) 
+                                    { 
+                                        Console.WriteLine("                                PictureFormat");
+                                        Console.WriteLine("                                    {0}", pictureFormat);
+                                    }	
+                                    List<String> platformList  =  itemAttributes.Platform;
+                                    foreach (String platform in platformList) 
+                                    { 
+                                        Console.WriteLine("                                Platform");
+                                        Console.WriteLine("                                    {0}", platform);
+                                    }	
+                                    if (itemAttributes.IsSetPriceRating()) 
+                                    {
+                                        Console.WriteLine("                                PriceRating");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PriceRating);
+                                    }
+                                    List<String> primaryColorList  =  itemAttributes.PrimaryColor;
+                                    foreach (String primaryColor in primaryColorList) 
+                                    { 
+                                        Console.WriteLine("                                PrimaryColor");
+                                        Console.WriteLine("                                    {0}", primaryColor);
+                                    }	
+                                    if (itemAttributes.IsSetProcessorCount()) 
+                                    {
+                                        Console.WriteLine("                                ProcessorCount");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ProcessorCount);
+                                    }
+                                    if (itemAttributes.IsSetProductGroup()) 
+                                    {
+                                        Console.WriteLine("                                ProductGroup");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ProductGroup);
+                                    }
+                                    if (itemAttributes.IsSetProductSiteLaunchDate()) 
+                                    {
+                                        Console.WriteLine("                                ProductSiteLaunchDate");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ProductSiteLaunchDate);
+                                    }
+                                    if (itemAttributes.IsSetProductTypeName()) 
+                                    {
+                                        Console.WriteLine("                                ProductTypeName");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ProductTypeName);
+                                    }
+                                    if (itemAttributes.IsSetProductTypeSubcategory()) 
+                                    {
+                                        Console.WriteLine("                                ProductTypeSubcategory");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ProductTypeSubcategory);
+                                    }
+                                    if (itemAttributes.IsSetPromotionalTag()) 
+                                    {
+                                        Console.WriteLine("                                PromotionalTag");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PromotionalTag);
+                                    }
+                                    if (itemAttributes.IsSetPublicationDate()) 
+                                    {
+                                        Console.WriteLine("                                PublicationDate");
+                                        Console.WriteLine("                                    {0}", itemAttributes.PublicationDate);
+                                    }
+                                    if (itemAttributes.IsSetPublisher()) 
+                                    {
+                                        Console.WriteLine("                                Publisher");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Publisher);
+                                    }
+                                    if (itemAttributes.IsSetPOBoxShippingExcluded()) 
+                                    {
+                                        Console.WriteLine("                                POBoxShippingExcluded");
+                                        Console.WriteLine("                                    {0}", itemAttributes.POBoxShippingExcluded);
+                                    }
+                                    if (itemAttributes.IsSetReadingLevel()) 
+                                    {
+                                        Console.WriteLine("                                ReadingLevel");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ReadingLevel);
+                                    }
+                                    List<String> returnMethodList  =  itemAttributes.ReturnMethod;
+                                    foreach (String returnMethod in returnMethodList) 
+                                    { 
+                                        Console.WriteLine("                                ReturnMethod");
+                                        Console.WriteLine("                                    {0}", returnMethod);
+                                    }	
+                                    if (itemAttributes.IsSetRecorderTrackCount()) 
+                                    {
+                                        Console.WriteLine("                                RecorderTrackCount");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RecorderTrackCount);
+                                    }
+                                    if (itemAttributes.IsSetRegionCode()) 
+                                    {
+                                        Console.WriteLine("                                RegionCode");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RegionCode);
+                                    }
+                                    if (itemAttributes.IsSetRegionOfOrigin()) 
+                                    {
+                                        Console.WriteLine("                                RegionOfOrigin");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RegionOfOrigin);
+                                    }
+                                    if (itemAttributes.IsSetReturnPolicy()) 
+                                    {
+                                        Console.WriteLine("                                ReturnPolicy");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ReturnPolicy);
+                                    }
+                                    if (itemAttributes.IsSetReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                ReleaseDate");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ReleaseDate);
+                                    }
+                                    if (itemAttributes.IsSetRemovableMemory()) 
+                                    {
+                                        Console.WriteLine("                                RemovableMemory");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RemovableMemory);
+                                    }
+                                    if (itemAttributes.IsSetRemovableStorage()) 
+                                    {
+                                        Console.WriteLine("                                RemovableStorage");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RemovableStorage);
+                                    }
+                                    if (itemAttributes.IsSetRequiredVoltageRange()) 
+                                    {
+                                        Console.WriteLine("                                RequiredVoltageRange");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RequiredVoltageRange);
+                                    }
+                                    if (itemAttributes.IsSetResolutionModes()) 
+                                    {
+                                        Console.WriteLine("                                ResolutionModes");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ResolutionModes);
+                                    }
+                                    if (itemAttributes.IsSetRingSize()) 
+                                    {
+                                        Console.WriteLine("                                RingSize");
+                                        Console.WriteLine("                                    {0}", itemAttributes.RingSize);
+                                    }
+                                    if (itemAttributes.IsSetRunningTime()) 
+                                    {
+                                        Console.WriteLine("                                RunningTime");
+                                        DecimalWithUnits  runningTime = itemAttributes.RunningTime;
+                                    } 
+                                    if (itemAttributes.IsSetScentName()) 
+                                    {
+                                        Console.WriteLine("                                ScentName");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ScentName);
+                                    }
+                                    if (itemAttributes.IsSetSecondaryCacheSize()) 
+                                    {
+                                        Console.WriteLine("                                SecondaryCacheSize");
+                                        NonNegativeIntegerWithUnits  secondaryCacheSize = itemAttributes.SecondaryCacheSize;
+                                    } 
+                                    if (itemAttributes.IsSetSettingType()) 
+                                    {
+                                        Console.WriteLine("                                SettingType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SettingType);
+                                    }
+                                    if (itemAttributes.IsSetShaftMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                ShaftMaterialType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.ShaftMaterialType);
+                                    }
+                                    List<String> shoeSizeList  =  itemAttributes.ShoeSize;
+                                    foreach (String shoeSize in shoeSizeList) 
+                                    { 
+                                        Console.WriteLine("                                ShoeSize");
+                                        Console.WriteLine("                                    {0}", shoeSize);
+                                    }	
+                                    if (itemAttributes.IsSetSize()) 
+                                    {
+                                        Console.WriteLine("                                Size");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Size);
+                                    }
+                                    if (itemAttributes.IsSetSizePerPearl()) 
+                                    {
+                                        Console.WriteLine("                                SizePerPearl");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SizePerPearl);
+                                    }
+                                    if (itemAttributes.IsSetSkillLevel()) 
+                                    {
+                                        Console.WriteLine("                                SkillLevel");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SkillLevel);
+                                    }
+                                    if (itemAttributes.IsSetSKU()) 
+                                    {
+                                        Console.WriteLine("                                SKU");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SKU);
+                                    }
+                                    if (itemAttributes.IsSetSoldInStores()) 
+                                    {
+                                        Console.WriteLine("                                SoldInStores");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SoldInStores);
+                                    }
+                                    if (itemAttributes.IsSetSoundCardDescription()) 
+                                    {
+                                        Console.WriteLine("                                SoundCardDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SoundCardDescription);
+                                    }
+                                    if (itemAttributes.IsSetSpeakerCount()) 
+                                    {
+                                        Console.WriteLine("                                SpeakerCount");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SpeakerCount);
+                                    }
+                                    if (itemAttributes.IsSetSpeakerDescription()) 
+                                    {
+                                        Console.WriteLine("                                SpeakerDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SpeakerDescription);
+                                    }
+                                    List<String> specialFeaturesList  =  itemAttributes.SpecialFeatures;
+                                    foreach (String specialFeatures in specialFeaturesList) 
+                                    { 
+                                        Console.WriteLine("                                SpecialFeatures");
+                                        Console.WriteLine("                                    {0}", specialFeatures);
+                                    }	
+                                    if (itemAttributes.IsSetStoneClarity()) 
+                                    {
+                                        Console.WriteLine("                                StoneClarity");
+                                        Console.WriteLine("                                    {0}", itemAttributes.StoneClarity);
+                                    }
+                                    if (itemAttributes.IsSetStoneColor()) 
+                                    {
+                                        Console.WriteLine("                                StoneColor");
+                                        Console.WriteLine("                                    {0}", itemAttributes.StoneColor);
+                                    }
+                                    if (itemAttributes.IsSetStoneCut()) 
+                                    {
+                                        Console.WriteLine("                                StoneCut");
+                                        Console.WriteLine("                                    {0}", itemAttributes.StoneCut);
+                                    }
+                                    if (itemAttributes.IsSetStoneShape()) 
+                                    {
+                                        Console.WriteLine("                                StoneShape");
+                                        Console.WriteLine("                                    {0}", itemAttributes.StoneShape);
+                                    }
+                                    if (itemAttributes.IsSetStoneWeight()) 
+                                    {
+                                        Console.WriteLine("                                StoneWeight");
+                                        DecimalWithUnits  stoneWeight = itemAttributes.StoneWeight;
+                                    } 
+                                    if (itemAttributes.IsSetStudio()) 
+                                    {
+                                        Console.WriteLine("                                Studio");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Studio);
+                                    }
+                                    if (itemAttributes.IsSetStyle()) 
+                                    {
+                                        Console.WriteLine("                                Style");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Style);
+                                    }
+                                    if (itemAttributes.IsSetSubscriptionLength()) 
+                                    {
+                                        Console.WriteLine("                                SubscriptionLength");
+                                        NonNegativeIntegerWithUnits  subscriptionLength = itemAttributes.SubscriptionLength;
+                                    } 
+                                    List<String> supportedImageTypeList  =  itemAttributes.SupportedImageType;
+                                    foreach (String supportedImageType in supportedImageTypeList) 
+                                    { 
+                                        Console.WriteLine("                                SupportedImageType");
+                                        Console.WriteLine("                                    {0}", supportedImageType);
+                                    }	
+                                    if (itemAttributes.IsSetSupportedMediaSize()) 
+                                    {
+                                        Console.WriteLine("                                SupportedMediaSize");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SupportedMediaSize);
+                                    }
+                                    if (itemAttributes.IsSetSystemBusSpeed()) 
+                                    {
+                                        Console.WriteLine("                                SystemBusSpeed");
+                                        DecimalWithUnits  systemBusSpeed = itemAttributes.SystemBusSpeed;
+                                    } 
+                                    if (itemAttributes.IsSetSystemMemorySizeMax()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemorySizeMax");
+                                        DecimalWithUnits  systemMemorySizeMax = itemAttributes.SystemMemorySizeMax;
+                                    } 
+                                    if (itemAttributes.IsSetSystemMemorySize()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemorySize");
+                                        DecimalWithUnits  systemMemorySize = itemAttributes.SystemMemorySize;
+                                    } 
+                                    if (itemAttributes.IsSetSystemMemoryType()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemoryType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.SystemMemoryType);
+                                    }
+                                    List<String> targetBrandList  =  itemAttributes.TargetBrand;
+                                    foreach (String targetBrand in targetBrandList) 
+                                    { 
+                                        Console.WriteLine("                                TargetBrand");
+                                        Console.WriteLine("                                    {0}", targetBrand);
+                                    }	
+                                    if (itemAttributes.IsSetTellingPageIndicator()) 
+                                    {
+                                        Console.WriteLine("                                TellingPageIndicator");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TellingPageIndicator);
+                                    }
+                                    if (itemAttributes.IsSetTheatricalReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                TheatricalReleaseDate");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TheatricalReleaseDate);
+                                    }
+                                    if (itemAttributes.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Title);
+                                    }
+                                    if (itemAttributes.IsSetTotalDiamondWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalDiamondWeight");
+                                        DecimalWithUnits  totalDiamondWeight = itemAttributes.TotalDiamondWeight;
+                                    } 
+                                    if (itemAttributes.IsSetTotalExternalBaysFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalExternalBaysFree");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalExternalBaysFree);
+                                    }
+                                    if (itemAttributes.IsSetTotalFirewirePorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalFirewirePorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalFirewirePorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalGemWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalGemWeight");
+                                        DecimalWithUnits  totalGemWeight = itemAttributes.TotalGemWeight;
+                                    } 
+                                    if (itemAttributes.IsSetTotalInternalBaysFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalInternalBaysFree");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalInternalBaysFree);
+                                    }
+                                    if (itemAttributes.IsSetTotalMetalWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalMetalWeight");
+                                        DecimalWithUnits  totalMetalWeight = itemAttributes.TotalMetalWeight;
+                                    } 
+                                    if (itemAttributes.IsSetTotalNTSCPALPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalNTSCPALPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalNTSCPALPorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalParallelPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalParallelPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalParallelPorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalPCCardSlots()) 
+                                    {
+                                        Console.WriteLine("                                TotalPCCardSlots");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalPCCardSlots);
+                                    }
+                                    if (itemAttributes.IsSetTotalPCISlotsFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalPCISlotsFree");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalPCISlotsFree);
+                                    }
+                                    if (itemAttributes.IsSetTotalSerialPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalSerialPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalSerialPorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalSVideoOutPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalSVideoOutPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalSVideoOutPorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalUSB2Ports()) 
+                                    {
+                                        Console.WriteLine("                                TotalUSB2Ports");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalUSB2Ports);
+                                    }
+                                    if (itemAttributes.IsSetTotalUSBPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalUSBPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalUSBPorts);
+                                    }
+                                    if (itemAttributes.IsSetTotalVGAOutPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalVGAOutPorts");
+                                        Console.WriteLine("                                    {0}", itemAttributes.TotalVGAOutPorts);
+                                    }
+                                    if (itemAttributes.IsSetUPC()) 
+                                    {
+                                        Console.WriteLine("                                UPC");
+                                        Console.WriteLine("                                    {0}", itemAttributes.UPC);
+                                    }
+                                    if (itemAttributes.IsSetVariationDenomination()) 
+                                    {
+                                        Console.WriteLine("                                VariationDenomination");
+                                        Console.WriteLine("                                    {0}", itemAttributes.VariationDenomination);
+                                    }
+                                    if (itemAttributes.IsSetVariationDescription()) 
+                                    {
+                                        Console.WriteLine("                                VariationDescription");
+                                        Console.WriteLine("                                    {0}", itemAttributes.VariationDescription);
+                                    }
+                                    if (itemAttributes.IsSetWarranty()) 
+                                    {
+                                        Console.WriteLine("                                Warranty");
+                                        Console.WriteLine("                                    {0}", itemAttributes.Warranty);
+                                    }
+                                    if (itemAttributes.IsSetWatchMovementType()) 
+                                    {
+                                        Console.WriteLine("                                WatchMovementType");
+                                        Console.WriteLine("                                    {0}", itemAttributes.WatchMovementType);
+                                    }
+                                    if (itemAttributes.IsSetWaterResistanceDepth()) 
+                                    {
+                                        Console.WriteLine("                                WaterResistanceDepth");
+                                        DecimalWithUnits  waterResistanceDepth = itemAttributes.WaterResistanceDepth;
+                                    } 
+                                    if (itemAttributes.IsSetWEEETaxValue()) 
+                                    {
+                                        Console.WriteLine("                                WEEETaxValue");
+                                        Price  WEEETaxValue = itemAttributes.WEEETaxValue;
+                                        if (WEEETaxValue.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", WEEETaxValue.Amount);
+                                        }
+                                        if (WEEETaxValue.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", WEEETaxValue.CurrencyCode);
+                                        }
+                                        if (WEEETaxValue.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", WEEETaxValue.FormattedPrice);
+                                        }
+                                    } 
+                                    if (itemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                    {
+                                        Console.WriteLine("                                WirelessMicrophoneFrequency");
+                                        Console.WriteLine("                                    {0}", itemAttributes.WirelessMicrophoneFrequency);
+                                    }
+                                } 
+                                if (item.IsSetMerchantItemAttributes()) 
+                                {
+                                    Console.WriteLine("                            MerchantItemAttributes");
+                                    MerchantItemAttributes  merchantItemAttributes = item.MerchantItemAttributes;
+                                    List<String> actorList  =  merchantItemAttributes.Actor;
+                                    foreach (String actor in actorList) 
+                                    { 
+                                        Console.WriteLine("                                Actor");
+                                        Console.WriteLine("                                    {0}", actor);
+                                    }	
+                                    if (merchantItemAttributes.IsSetAddress()) 
+                                    {
+                                        Console.WriteLine("                                Address");
+                                        Address  address = merchantItemAttributes.Address;
+                                        if (address.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", address.Name);
+                                        }
+                                        if (address.IsSetAddress1()) 
+                                        {
+                                            Console.WriteLine("                                    Address1");
+                                            Console.WriteLine("                                        {0}", address.Address1);
+                                        }
+                                        if (address.IsSetAddress2()) 
+                                        {
+                                            Console.WriteLine("                                    Address2");
+                                            Console.WriteLine("                                        {0}", address.Address2);
+                                        }
+                                        if (address.IsSetAddress3()) 
+                                        {
+                                            Console.WriteLine("                                    Address3");
+                                            Console.WriteLine("                                        {0}", address.Address3);
+                                        }
+                                        if (address.IsSetCity()) 
+                                        {
+                                            Console.WriteLine("                                    City");
+                                            Console.WriteLine("                                        {0}", address.City);
+                                        }
+                                        if (address.IsSetState()) 
+                                        {
+                                            Console.WriteLine("                                    State");
+                                            Console.WriteLine("                                        {0}", address.State);
+                                        }
+                                        if (address.IsSetPostalCode()) 
+                                        {
+                                            Console.WriteLine("                                    PostalCode");
+                                            Console.WriteLine("                                        {0}", address.PostalCode);
+                                        }
+                                        if (address.IsSetCountry()) 
+                                        {
+                                            Console.WriteLine("                                    Country");
+                                            Console.WriteLine("                                        {0}", address.Country);
+                                        }
+                                    } 
+                                    if (merchantItemAttributes.IsSetAmazonMaximumAge()) 
+                                    {
+                                        Console.WriteLine("                                AmazonMaximumAge");
+                                        DecimalWithUnits  amazonMaximumAge = merchantItemAttributes.AmazonMaximumAge;
+                                    } 
+                                    if (merchantItemAttributes.IsSetAmazonMinimumAge()) 
+                                    {
+                                        Console.WriteLine("                                AmazonMinimumAge");
+                                        DecimalWithUnits  amazonMinimumAge = merchantItemAttributes.AmazonMinimumAge;
+                                    } 
+                                    if (merchantItemAttributes.IsSetApertureModes()) 
+                                    {
+                                        Console.WriteLine("                                ApertureModes");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ApertureModes);
+                                    }
+                                    List<String> artistList  =  merchantItemAttributes.Artist;
+                                    foreach (String artist in artistList) 
+                                    { 
+                                        Console.WriteLine("                                Artist");
+                                        Console.WriteLine("                                    {0}", artist);
+                                    }	
+                                    if (merchantItemAttributes.IsSetAspectRatio()) 
+                                    {
+                                        Console.WriteLine("                                AspectRatio");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.AspectRatio);
+                                    }
+                                    if (merchantItemAttributes.IsSetAssemblyInstructions()) 
+                                    {
+                                        Console.WriteLine("                                AssemblyInstructions");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.AssemblyInstructions);
+                                    }
+                                    if (merchantItemAttributes.IsSetAssemblyRequired()) 
+                                    {
+                                        Console.WriteLine("                                AssemblyRequired");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.AssemblyRequired);
+                                    }
+                                    if (merchantItemAttributes.IsSetAudienceRating()) 
+                                    {
+                                        Console.WriteLine("                                AudienceRating");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.AudienceRating);
+                                    }
+                                    List<String> audioFormatList  =  merchantItemAttributes.AudioFormat;
+                                    foreach (String audioFormat in audioFormatList) 
+                                    { 
+                                        Console.WriteLine("                                AudioFormat");
+                                        Console.WriteLine("                                    {0}", audioFormat);
+                                    }	
+                                    List<String> authorList  =  merchantItemAttributes.Author;
+                                    foreach (String author in authorList) 
+                                    { 
+                                        Console.WriteLine("                                Author");
+                                        Console.WriteLine("                                    {0}", author);
+                                    }	
+                                    if (merchantItemAttributes.IsSetBackFinding()) 
+                                    {
+                                        Console.WriteLine("                                BackFinding");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BackFinding);
+                                    }
+                                    if (merchantItemAttributes.IsSetBandMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                BandMaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BandMaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetBatteriesIncluded()) 
+                                    {
+                                        Console.WriteLine("                                BatteriesIncluded");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BatteriesIncluded);
+                                    }
+                                    if (merchantItemAttributes.IsSetBatteriesRequired()) 
+                                    {
+                                        Console.WriteLine("                                BatteriesRequired");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BatteriesRequired);
+                                    }
+                                    if (merchantItemAttributes.IsSetBatteries()) 
+                                    {
+                                        Console.WriteLine("                                Batteries");
+                                        NonNegativeIntegerWithUnits  batteries = merchantItemAttributes.Batteries;
+                                    } 
+                                    if (merchantItemAttributes.IsSetBatteryDescription()) 
+                                    {
+                                        Console.WriteLine("                                BatteryDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BatteryDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetBatteryType()) 
+                                    {
+                                        Console.WriteLine("                                BatteryType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BatteryType);
+                                    }
+                                    if (merchantItemAttributes.IsSetBezelMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                BezelMaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.BezelMaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetBinding()) 
+                                    {
+                                        Console.WriteLine("                                Binding");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Binding);
+                                    }
+                                    if (merchantItemAttributes.IsSetBrand()) 
+                                    {
+                                        Console.WriteLine("                                Brand");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Brand);
+                                    }
+                                    if (merchantItemAttributes.IsSetCalendarType()) 
+                                    {
+                                        Console.WriteLine("                                CalendarType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CalendarType);
+                                    }
+                                    List<String> cameraManualFeaturesList  =  merchantItemAttributes.CameraManualFeatures;
+                                    foreach (String cameraManualFeatures in cameraManualFeaturesList) 
+                                    { 
+                                        Console.WriteLine("                                CameraManualFeatures");
+                                        Console.WriteLine("                                    {0}", cameraManualFeatures);
+                                    }	
+                                    if (merchantItemAttributes.IsSetCaseDiameter()) 
+                                    {
+                                        Console.WriteLine("                                CaseDiameter");
+                                        DecimalWithUnits  caseDiameter = merchantItemAttributes.CaseDiameter;
+                                    } 
+                                    if (merchantItemAttributes.IsSetCaseMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                CaseMaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CaseMaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetCaseThickness()) 
+                                    {
+                                        Console.WriteLine("                                CaseThickness");
+                                        DecimalWithUnits  caseThickness = merchantItemAttributes.CaseThickness;
+                                    } 
+                                    if (merchantItemAttributes.IsSetCaseType()) 
+                                    {
+                                        Console.WriteLine("                                CaseType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CaseType);
+                                    }
+                                    if (merchantItemAttributes.IsSetCatalogNumber()) 
+                                    {
+                                        Console.WriteLine("                                CatalogNumber");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CatalogNumber);
+                                    }
+                                    if (merchantItemAttributes.IsSetCDRWDescription()) 
+                                    {
+                                        Console.WriteLine("                                CDRWDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CDRWDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetChainType()) 
+                                    {
+                                        Console.WriteLine("                                ChainType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ChainType);
+                                    }
+                                    if (merchantItemAttributes.IsSetClaspType()) 
+                                    {
+                                        Console.WriteLine("                                ClaspType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ClaspType);
+                                    }
+                                    if (merchantItemAttributes.IsSetClothingSize()) 
+                                    {
+                                        Console.WriteLine("                                ClothingSize");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ClothingSize);
+                                    }
+                                    if (merchantItemAttributes.IsSetColor()) 
+                                    {
+                                        Console.WriteLine("                                Color");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Color);
+                                    }
+                                    if (merchantItemAttributes.IsSetCompatibility()) 
+                                    {
+                                        Console.WriteLine("                                Compatibility");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Compatibility);
+                                    }
+                                    if (merchantItemAttributes.IsSetComputerHardwareType()) 
+                                    {
+                                        Console.WriteLine("                                ComputerHardwareType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ComputerHardwareType);
+                                    }
+                                    if (merchantItemAttributes.IsSetComputerPlatform()) 
+                                    {
+                                        Console.WriteLine("                                ComputerPlatform");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ComputerPlatform);
+                                    }
+                                    if (merchantItemAttributes.IsSetConnectivity()) 
+                                    {
+                                        Console.WriteLine("                                Connectivity");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Connectivity);
+                                    }
+                                    if (merchantItemAttributes.IsSetContinuousShootingSpeed()) 
+                                    {
+                                        Console.WriteLine("                                ContinuousShootingSpeed");
+                                        DecimalWithUnits  continuousShootingSpeed = merchantItemAttributes.ContinuousShootingSpeed;
+                                    } 
+                                    if (merchantItemAttributes.IsSetCountry()) 
+                                    {
+                                        Console.WriteLine("                                Country");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Country);
+                                    }
+                                    if (merchantItemAttributes.IsSetCountryOfOrigin()) 
+                                    {
+                                        Console.WriteLine("                                CountryOfOrigin");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CountryOfOrigin);
+                                    }
+                                    if (merchantItemAttributes.IsSetCPUManufacturer()) 
+                                    {
+                                        Console.WriteLine("                                CPUManufacturer");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CPUManufacturer);
+                                    }
+                                    if (merchantItemAttributes.IsSetCPUSpeed()) 
+                                    {
+                                        Console.WriteLine("                                CPUSpeed");
+                                        DecimalWithUnits  CPUSpeed = merchantItemAttributes.CPUSpeed;
+                                    } 
+                                    if (merchantItemAttributes.IsSetCPUType()) 
+                                    {
+                                        Console.WriteLine("                                CPUType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.CPUType);
+                                    }
+                                    List<Creator> creatorList = merchantItemAttributes.Creator;
+                                    foreach (Creator creator in creatorList) 
+                                    {
+                                        Console.WriteLine("                                Creator");
+                                    }
+                                    if (merchantItemAttributes.IsSetCuisine()) 
+                                    {
+                                        Console.WriteLine("                                Cuisine");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Cuisine);
+                                    }
+                                    if (merchantItemAttributes.IsSetCustomizable()) 
+                                    {
+                                        Console.WriteLine("                                Customizable");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Customizable);
+                                    }
+                                    if (merchantItemAttributes.IsSetDelayBetweenShots()) 
+                                    {
+                                        Console.WriteLine("                                DelayBetweenShots");
+                                        DecimalWithUnits  delayBetweenShots = merchantItemAttributes.DelayBetweenShots;
+                                    } 
+                                    if (merchantItemAttributes.IsSetDeliveryOption()) 
+                                    {
+                                        Console.WriteLine("                                DeliveryOption");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DeliveryOption);
+                                    }
+                                    if (merchantItemAttributes.IsSetDepartment()) 
+                                    {
+                                        Console.WriteLine("                                Department");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Department);
+                                    }
+                                    if (merchantItemAttributes.IsSetDescription()) 
+                                    {
+                                        Console.WriteLine("                                Description");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Description);
+                                    }
+                                    if (merchantItemAttributes.IsSetDeweyDecimalNumber()) 
+                                    {
+                                        Console.WriteLine("                                DeweyDecimalNumber");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DeweyDecimalNumber);
+                                    }
+                                    if (merchantItemAttributes.IsSetDialColor()) 
+                                    {
+                                        Console.WriteLine("                                DialColor");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DialColor);
+                                    }
+                                    if (merchantItemAttributes.IsSetDialWindowMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                DialWindowMaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DialWindowMaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetDigitalZoom()) 
+                                    {
+                                        Console.WriteLine("                                DigitalZoom");
+                                        DecimalWithUnits  digitalZoom = merchantItemAttributes.DigitalZoom;
+                                    } 
+                                    List<String> directorList  =  merchantItemAttributes.Director;
+                                    foreach (String director in directorList) 
+                                    { 
+                                        Console.WriteLine("                                Director");
+                                        Console.WriteLine("                                    {0}", director);
+                                    }	
+                                    if (merchantItemAttributes.IsSetDisplaySize()) 
+                                    {
+                                        Console.WriteLine("                                DisplaySize");
+                                        DecimalWithUnits  displaySize = merchantItemAttributes.DisplaySize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetDrumSetPieceQuantity()) 
+                                    {
+                                        Console.WriteLine("                                DrumSetPieceQuantity");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DrumSetPieceQuantity);
+                                    }
+                                    if (merchantItemAttributes.IsSetDVDLayers()) 
+                                    {
+                                        Console.WriteLine("                                DVDLayers");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DVDLayers);
+                                    }
+                                    if (merchantItemAttributes.IsSetDVDRWDescription()) 
+                                    {
+                                        Console.WriteLine("                                DVDRWDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DVDRWDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetDVDSides()) 
+                                    {
+                                        Console.WriteLine("                                DVDSides");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DVDSides);
+                                    }
+                                    if (merchantItemAttributes.IsSetDPCI()) 
+                                    {
+                                        Console.WriteLine("                                DPCI");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.DPCI);
+                                    }
+                                    if (merchantItemAttributes.IsSetEAN()) 
+                                    {
+                                        Console.WriteLine("                                EAN");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.EAN);
+                                    }
+                                    if (merchantItemAttributes.IsSetEdition()) 
+                                    {
+                                        Console.WriteLine("                                Edition");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Edition);
+                                    }
+                                    if (merchantItemAttributes.IsSetESRBAgeRating()) 
+                                    {
+                                        Console.WriteLine("                                ESRBAgeRating");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ESRBAgeRating);
+                                    }
+                                    if (merchantItemAttributes.IsSetExternalDisplaySupportDescription()) 
+                                    {
+                                        Console.WriteLine("                                ExternalDisplaySupportDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ExternalDisplaySupportDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetFabricType()) 
+                                    {
+                                        Console.WriteLine("                                FabricType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.FabricType);
+                                    }
+                                    if (merchantItemAttributes.IsSetFaxNumber()) 
+                                    {
+                                        Console.WriteLine("                                FaxNumber");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.FaxNumber);
+                                    }
+                                    List<String> featureList  =  merchantItemAttributes.Feature;
+                                    foreach (String feature in featureList) 
+                                    { 
+                                        Console.WriteLine("                                Feature");
+                                        Console.WriteLine("                                    {0}", feature);
+                                    }	
+                                    if (merchantItemAttributes.IsSetFirstIssueLeadTime()) 
+                                    {
+                                        Console.WriteLine("                                FirstIssueLeadTime");
+                                        StringWithUnits  firstIssueLeadTime = merchantItemAttributes.FirstIssueLeadTime;
+                                    } 
+                                    if (merchantItemAttributes.IsSetFloppyDiskDriveDescription()) 
+                                    {
+                                        Console.WriteLine("                                FloppyDiskDriveDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.FloppyDiskDriveDescription);
+                                    }
+                                    List<String> formatList  =  merchantItemAttributes.Format;
+                                    foreach (String format in formatList) 
+                                    { 
+                                        Console.WriteLine("                                Format");
+                                        Console.WriteLine("                                    {0}", format);
+                                    }	
+                                    if (merchantItemAttributes.IsSetFixedShippingCharge()) 
+                                    {
+                                        Console.WriteLine("                                FixedShippingCharge");
+                                        Price  fixedShippingCharge = merchantItemAttributes.FixedShippingCharge;
+                                        if (fixedShippingCharge.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", fixedShippingCharge.Amount);
+                                        }
+                                        if (fixedShippingCharge.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", fixedShippingCharge.CurrencyCode);
+                                        }
+                                        if (fixedShippingCharge.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", fixedShippingCharge.FormattedPrice);
+                                        }
+                                    } 
+                                    if (merchantItemAttributes.IsSetGemType()) 
+                                    {
+                                        Console.WriteLine("                                GemType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GemType);
+                                    }
+                                    if (merchantItemAttributes.IsSetGraphicsCardInterface()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsCardInterface");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GraphicsCardInterface);
+                                    }
+                                    if (merchantItemAttributes.IsSetGraphicsDescription()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GraphicsDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetGraphicsMemorySize()) 
+                                    {
+                                        Console.WriteLine("                                GraphicsMemorySize");
+                                        DecimalWithUnits  graphicsMemorySize = merchantItemAttributes.GraphicsMemorySize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetGuitarAttribute()) 
+                                    {
+                                        Console.WriteLine("                                GuitarAttribute");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GuitarAttribute);
+                                    }
+                                    if (merchantItemAttributes.IsSetGuitarBridgeSystem()) 
+                                    {
+                                        Console.WriteLine("                                GuitarBridgeSystem");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GuitarBridgeSystem);
+                                    }
+                                    if (merchantItemAttributes.IsSetGuitarPickThickness()) 
+                                    {
+                                        Console.WriteLine("                                GuitarPickThickness");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GuitarPickThickness);
+                                    }
+                                    if (merchantItemAttributes.IsSetGuitarPickupConfiguration()) 
+                                    {
+                                        Console.WriteLine("                                GuitarPickupConfiguration");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.GuitarPickupConfiguration);
+                                    }
+                                    if (merchantItemAttributes.IsSetHardDiskCount()) 
+                                    {
+                                        Console.WriteLine("                                HardDiskCount");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HardDiskCount);
+                                    }
+                                    if (merchantItemAttributes.IsSetHardDiskSize()) 
+                                    {
+                                        Console.WriteLine("                                HardDiskSize");
+                                        NonNegativeIntegerWithUnits  hardDiskSize = merchantItemAttributes.HardDiskSize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetHasAutoFocus()) 
+                                    {
+                                        Console.WriteLine("                                HasAutoFocus");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasAutoFocus);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasBurstMode()) 
+                                    {
+                                        Console.WriteLine("                                HasBurstMode");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasBurstMode);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasInCameraEditing()) 
+                                    {
+                                        Console.WriteLine("                                HasInCameraEditing");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasInCameraEditing);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasRedEyeReduction()) 
+                                    {
+                                        Console.WriteLine("                                HasRedEyeReduction");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasRedEyeReduction);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasSelfTimer()) 
+                                    {
+                                        Console.WriteLine("                                HasSelfTimer");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasSelfTimer);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasTripodMount()) 
+                                    {
+                                        Console.WriteLine("                                HasTripodMount");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasTripodMount);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasVideoOut()) 
+                                    {
+                                        Console.WriteLine("                                HasVideoOut");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasVideoOut);
+                                    }
+                                    if (merchantItemAttributes.IsSetHasViewfinder()) 
+                                    {
+                                        Console.WriteLine("                                HasViewfinder");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HasViewfinder);
+                                    }
+                                    if (merchantItemAttributes.IsSetHazardousMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                HazardousMaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HazardousMaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetHoursOfOperation()) 
+                                    {
+                                        Console.WriteLine("                                HoursOfOperation");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.HoursOfOperation);
+                                    }
+                                    if (merchantItemAttributes.IsSetIncludedSoftware()) 
+                                    {
+                                        Console.WriteLine("                                IncludedSoftware");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IncludedSoftware);
+                                    }
+                                    if (merchantItemAttributes.IsSetIncludesMp3Player()) 
+                                    {
+                                        Console.WriteLine("                                IncludesMp3Player");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IncludesMp3Player);
+                                    }
+                                    if (merchantItemAttributes.IsSetIndications()) 
+                                    {
+                                        Console.WriteLine("                                Indications");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Indications);
+                                    }
+                                    if (merchantItemAttributes.IsSetIngredients()) 
+                                    {
+                                        Console.WriteLine("                                Ingredients");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Ingredients);
+                                    }
+                                    if (merchantItemAttributes.IsSetInstrumentKey()) 
+                                    {
+                                        Console.WriteLine("                                InstrumentKey");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.InstrumentKey);
+                                    }
+                                    if (merchantItemAttributes.IsSetIsAutographed()) 
+                                    {
+                                        Console.WriteLine("                                IsAutographed");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IsAutographed);
+                                    }
+                                    if (merchantItemAttributes.IsSetISBN()) 
+                                    {
+                                        Console.WriteLine("                                ISBN");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ISBN);
+                                    }
+                                    if (merchantItemAttributes.IsSetIsFragile()) 
+                                    {
+                                        Console.WriteLine("                                IsFragile");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IsFragile);
+                                    }
+                                    if (merchantItemAttributes.IsSetIsLabCreated()) 
+                                    {
+                                        Console.WriteLine("                                IsLabCreated");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IsLabCreated);
+                                    }
+                                    if (merchantItemAttributes.IsSetIsMemorabilia()) 
+                                    {
+                                        Console.WriteLine("                                IsMemorabilia");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IsMemorabilia);
+                                    }
+                                    if (merchantItemAttributes.IsSetISOEquivalent()) 
+                                    {
+                                        Console.WriteLine("                                ISOEquivalent");
+                                        NonNegativeIntegerWithUnits  ISOEquivalent = merchantItemAttributes.ISOEquivalent;
+                                    } 
+                                    if (merchantItemAttributes.IsSetIssuesPerYear()) 
+                                    {
+                                        Console.WriteLine("                                IssuesPerYear");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.IssuesPerYear);
+                                    }
+                                    if (merchantItemAttributes.IsSetItemDimensions()) 
+                                    {
+                                        Console.WriteLine("                                ItemDimensions");
+                                        ItemDimensions  itemDimensions = merchantItemAttributes.ItemDimensions;
+                                        if (itemDimensions.IsSetHeight()) 
+                                        {
+                                            Console.WriteLine("                                    Height");
+                                            DecimalWithUnits  height = itemDimensions.Height;
+                                        } 
+                                        if (itemDimensions.IsSetLength()) 
+                                        {
+                                            Console.WriteLine("                                    Length");
+                                            DecimalWithUnits  length = itemDimensions.Length;
+                                        } 
+                                        if (itemDimensions.IsSetWeight()) 
+                                        {
+                                            Console.WriteLine("                                    Weight");
+                                            DecimalWithUnits  weight = itemDimensions.Weight;
+                                        } 
+                                        if (itemDimensions.IsSetWidth()) 
+                                        {
+                                            Console.WriteLine("                                    Width");
+                                            DecimalWithUnits  width = itemDimensions.Width;
+                                        } 
+                                    } 
+                                    if (merchantItemAttributes.IsSetKeyboardDescription()) 
+                                    {
+                                        Console.WriteLine("                                KeyboardDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.KeyboardDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetLabel()) 
+                                    {
+                                        Console.WriteLine("                                Label");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Label);
+                                    }
+                                    if (merchantItemAttributes.IsSetLanguages()) 
+                                    {
+                                        Console.WriteLine("                                Languages");
+                                        Languages  languages = merchantItemAttributes.Languages;
+                                        List<Language> languageList = languages.Language;
+                                        foreach (Language language in languageList) 
+                                        {
+                                            Console.WriteLine("                                    Language");
+                                            if (language.IsSetName()) 
+                                            {
+                                                Console.WriteLine("                                        Name");
+                                                Console.WriteLine("                                            {0}", language.Name);
+                                            }
+                                            if (language.IsSetType()) 
+                                            {
+                                                Console.WriteLine("                                        Type");
+                                                Console.WriteLine("                                            {0}", language.Type);
+                                            }
+                                            if (language.IsSetAudioFormat()) 
+                                            {
+                                                Console.WriteLine("                                        AudioFormat");
+                                                Console.WriteLine("                                            {0}", language.AudioFormat);
+                                            }
+                                        }
+                                    } 
+                                    if (merchantItemAttributes.IsSetLegalDisclaimer()) 
+                                    {
+                                        Console.WriteLine("                                LegalDisclaimer");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.LegalDisclaimer);
+                                    }
+                                    if (merchantItemAttributes.IsSetLineVoltage()) 
+                                    {
+                                        Console.WriteLine("                                LineVoltage");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.LineVoltage);
+                                    }
+                                    if (merchantItemAttributes.IsSetListPrice()) 
+                                    {
+                                        Console.WriteLine("                                ListPrice");
+                                        Price  listPrice = merchantItemAttributes.ListPrice;
+                                        if (listPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", listPrice.Amount);
+                                        }
+                                        if (listPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", listPrice.CurrencyCode);
+                                        }
+                                        if (listPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", listPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (merchantItemAttributes.IsSetMacroFocusRange()) 
+                                    {
+                                        Console.WriteLine("                                MacroFocusRange");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MacroFocusRange);
+                                    }
+                                    if (merchantItemAttributes.IsSetMagazineType()) 
+                                    {
+                                        Console.WriteLine("                                MagazineType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MagazineType);
+                                    }
+                                    if (merchantItemAttributes.IsSetMalletHardness()) 
+                                    {
+                                        Console.WriteLine("                                MalletHardness");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MalletHardness);
+                                    }
+                                    if (merchantItemAttributes.IsSetManufacturer()) 
+                                    {
+                                        Console.WriteLine("                                Manufacturer");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Manufacturer);
+                                    }
+                                    if (merchantItemAttributes.IsSetManufacturerLaborWarrantyDescription()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerLaborWarrantyDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ManufacturerLaborWarrantyDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetManufacturerMaximumAge()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerMaximumAge");
+                                        DecimalWithUnits  manufacturerMaximumAge = merchantItemAttributes.ManufacturerMaximumAge;
+                                    } 
+                                    if (merchantItemAttributes.IsSetManufacturerMinimumAge()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerMinimumAge");
+                                        DecimalWithUnits  manufacturerMinimumAge = merchantItemAttributes.ManufacturerMinimumAge;
+                                    } 
+                                    if (merchantItemAttributes.IsSetManufacturerPartsWarrantyDescription()) 
+                                    {
+                                        Console.WriteLine("                                ManufacturerPartsWarrantyDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ManufacturerPartsWarrantyDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetMaterialType()) 
+                                    {
+                                        Console.WriteLine("                                MaterialType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MaterialType);
+                                    }
+                                    if (merchantItemAttributes.IsSetMaximumAperture()) 
+                                    {
+                                        Console.WriteLine("                                MaximumAperture");
+                                        DecimalWithUnits  maximumAperture = merchantItemAttributes.MaximumAperture;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumColorDepth()) 
+                                    {
+                                        Console.WriteLine("                                MaximumColorDepth");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MaximumColorDepth);
+                                    }
+                                    if (merchantItemAttributes.IsSetMaximumFocalLength()) 
+                                    {
+                                        Console.WriteLine("                                MaximumFocalLength");
+                                        DecimalWithUnits  maximumFocalLength = merchantItemAttributes.MaximumFocalLength;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumHighResolutionImages()) 
+                                    {
+                                        Console.WriteLine("                                MaximumHighResolutionImages");
+                                        NonNegativeIntegerWithUnits  maximumHighResolutionImages = merchantItemAttributes.MaximumHighResolutionImages;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumHorizontalResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumHorizontalResolution");
+                                        NonNegativeIntegerWithUnits  maximumHorizontalResolution = merchantItemAttributes.MaximumHorizontalResolution;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumLowResolutionImages()) 
+                                    {
+                                        Console.WriteLine("                                MaximumLowResolutionImages");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MaximumLowResolutionImages);
+                                    }
+                                    if (merchantItemAttributes.IsSetMaximumResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumResolution");
+                                        DecimalWithUnits  maximumResolution = merchantItemAttributes.MaximumResolution;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumShutterSpeed()) 
+                                    {
+                                        Console.WriteLine("                                MaximumShutterSpeed");
+                                        DecimalWithUnits  maximumShutterSpeed = merchantItemAttributes.MaximumShutterSpeed;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumVerticalResolution()) 
+                                    {
+                                        Console.WriteLine("                                MaximumVerticalResolution");
+                                        NonNegativeIntegerWithUnits  maximumVerticalResolution = merchantItemAttributes.MaximumVerticalResolution;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMaximumWeightRecommendation()) 
+                                    {
+                                        Console.WriteLine("                                MaximumWeightRecommendation");
+                                        DecimalWithUnits  maximumWeightRecommendation = merchantItemAttributes.MaximumWeightRecommendation;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMemorySlotsAvailable()) 
+                                    {
+                                        Console.WriteLine("                                MemorySlotsAvailable");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MemorySlotsAvailable);
+                                    }
+                                    if (merchantItemAttributes.IsSetMetalStamp()) 
+                                    {
+                                        Console.WriteLine("                                MetalStamp");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MetalStamp);
+                                    }
+                                    if (merchantItemAttributes.IsSetMetalType()) 
+                                    {
+                                        Console.WriteLine("                                MetalType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MetalType);
+                                    }
+                                    if (merchantItemAttributes.IsSetMiniMovieDescription()) 
+                                    {
+                                        Console.WriteLine("                                MiniMovieDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MiniMovieDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetMinimumFocalLength()) 
+                                    {
+                                        Console.WriteLine("                                MinimumFocalLength");
+                                        DecimalWithUnits  minimumFocalLength = merchantItemAttributes.MinimumFocalLength;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMinimumShutterSpeed()) 
+                                    {
+                                        Console.WriteLine("                                MinimumShutterSpeed");
+                                        DecimalWithUnits  minimumShutterSpeed = merchantItemAttributes.MinimumShutterSpeed;
+                                    } 
+                                    if (merchantItemAttributes.IsSetModel()) 
+                                    {
+                                        Console.WriteLine("                                Model");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Model);
+                                    }
+                                    if (merchantItemAttributes.IsSetModelYear()) 
+                                    {
+                                        Console.WriteLine("                                ModelYear");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ModelYear);
+                                    }
+                                    if (merchantItemAttributes.IsSetModemDescription()) 
+                                    {
+                                        Console.WriteLine("                                ModemDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ModemDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetMonitorSize()) 
+                                    {
+                                        Console.WriteLine("                                MonitorSize");
+                                        DecimalWithUnits  monitorSize = merchantItemAttributes.MonitorSize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMonitorViewableDiagonalSize()) 
+                                    {
+                                        Console.WriteLine("                                MonitorViewableDiagonalSize");
+                                        DecimalWithUnits  monitorViewableDiagonalSize = merchantItemAttributes.MonitorViewableDiagonalSize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetMouseDescription()) 
+                                    {
+                                        Console.WriteLine("                                MouseDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MouseDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetMPN()) 
+                                    {
+                                        Console.WriteLine("                                MPN");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MPN);
+                                    }
+                                    if (merchantItemAttributes.IsSetMusicalStyle()) 
+                                    {
+                                        Console.WriteLine("                                MusicalStyle");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.MusicalStyle);
+                                    }
+                                    if (merchantItemAttributes.IsSetNativeResolution()) 
+                                    {
+                                        Console.WriteLine("                                NativeResolution");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NativeResolution);
+                                    }
+                                    if (merchantItemAttributes.IsSetNeighborhood()) 
+                                    {
+                                        Console.WriteLine("                                Neighborhood");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Neighborhood);
+                                    }
+                                    if (merchantItemAttributes.IsSetNetworkInterfaceDescription()) 
+                                    {
+                                        Console.WriteLine("                                NetworkInterfaceDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NetworkInterfaceDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetNotebookDisplayTechnology()) 
+                                    {
+                                        Console.WriteLine("                                NotebookDisplayTechnology");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NotebookDisplayTechnology);
+                                    }
+                                    if (merchantItemAttributes.IsSetNotebookPointingDeviceDescription()) 
+                                    {
+                                        Console.WriteLine("                                NotebookPointingDeviceDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NotebookPointingDeviceDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfDiscs()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfDiscs");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfDiscs);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfIssues()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfIssues");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfIssues);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfItems()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfItems");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfItems);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfKeys()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfKeys");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfKeys);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfPages()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfPages");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfPages);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfPearls()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfPearls");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfPearls);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfRapidFireShots()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfRapidFireShots");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfRapidFireShots);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfStones()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfStones");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfStones);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfStrings()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfStrings");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfStrings);
+                                    }
+                                    if (merchantItemAttributes.IsSetNumberOfTracks()) 
+                                    {
+                                        Console.WriteLine("                                NumberOfTracks");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.NumberOfTracks);
+                                    }
+                                    if (merchantItemAttributes.IsSetOpticalZoom()) 
+                                    {
+                                        Console.WriteLine("                                OpticalZoom");
+                                        DecimalWithUnits  opticalZoom = merchantItemAttributes.OpticalZoom;
+                                    } 
+                                    if (merchantItemAttributes.IsSetOriginalReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                OriginalReleaseDate");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.OriginalReleaseDate);
+                                    }
+                                    if (merchantItemAttributes.IsSetOutputWattage()) 
+                                    {
+                                        Console.WriteLine("                                OutputWattage");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.OutputWattage);
+                                    }
+                                    if (merchantItemAttributes.IsSetPackageDimensions()) 
+                                    {
+                                        Console.WriteLine("                                PackageDimensions");
+                                        PackageDimensions  packageDimensions = merchantItemAttributes.PackageDimensions;
+                                        if (packageDimensions.IsSetHeight()) 
+                                        {
+                                            Console.WriteLine("                                    Height");
+                                            DecimalWithUnits  height = packageDimensions.Height;
+                                        } 
+                                        if (packageDimensions.IsSetLength()) 
+                                        {
+                                            Console.WriteLine("                                    Length");
+                                            DecimalWithUnits  length = packageDimensions.Length;
+                                        } 
+                                        if (packageDimensions.IsSetWeight()) 
+                                        {
+                                            Console.WriteLine("                                    Weight");
+                                            DecimalWithUnits  weight = packageDimensions.Weight;
+                                        } 
+                                        if (packageDimensions.IsSetWidth()) 
+                                        {
+                                            Console.WriteLine("                                    Width");
+                                            DecimalWithUnits  width = packageDimensions.Width;
+                                        } 
+                                    } 
+                                    if (merchantItemAttributes.IsSetPearlLustre()) 
+                                    {
+                                        Console.WriteLine("                                PearlLustre");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlLustre);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlMinimumColor()) 
+                                    {
+                                        Console.WriteLine("                                PearlMinimumColor");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlMinimumColor);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlShape()) 
+                                    {
+                                        Console.WriteLine("                                PearlShape");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlShape);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlStringingMethod()) 
+                                    {
+                                        Console.WriteLine("                                PearlStringingMethod");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlStringingMethod);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlSurfaceBlemishes()) 
+                                    {
+                                        Console.WriteLine("                                PearlSurfaceBlemishes");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlSurfaceBlemishes);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlType()) 
+                                    {
+                                        Console.WriteLine("                                PearlType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlType);
+                                    }
+                                    if (merchantItemAttributes.IsSetPearlUniformity()) 
+                                    {
+                                        Console.WriteLine("                                PearlUniformity");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PearlUniformity);
+                                    }
+                                    if (merchantItemAttributes.IsSetPhoneNumber()) 
+                                    {
+                                        Console.WriteLine("                                PhoneNumber");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PhoneNumber);
+                                    }
+                                    List<String> photoFlashTypeList  =  merchantItemAttributes.PhotoFlashType;
+                                    foreach (String photoFlashType in photoFlashTypeList) 
+                                    { 
+                                        Console.WriteLine("                                PhotoFlashType");
+                                        Console.WriteLine("                                    {0}", photoFlashType);
+                                    }	
+                                    List<String> pictureFormatList  =  merchantItemAttributes.PictureFormat;
+                                    foreach (String pictureFormat in pictureFormatList) 
+                                    { 
+                                        Console.WriteLine("                                PictureFormat");
+                                        Console.WriteLine("                                    {0}", pictureFormat);
+                                    }	
+                                    List<String> platformList  =  merchantItemAttributes.Platform;
+                                    foreach (String platform in platformList) 
+                                    { 
+                                        Console.WriteLine("                                Platform");
+                                        Console.WriteLine("                                    {0}", platform);
+                                    }	
+                                    if (merchantItemAttributes.IsSetPriceRating()) 
+                                    {
+                                        Console.WriteLine("                                PriceRating");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PriceRating);
+                                    }
+                                    if (merchantItemAttributes.IsSetProcessorCount()) 
+                                    {
+                                        Console.WriteLine("                                ProcessorCount");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ProcessorCount);
+                                    }
+                                    if (merchantItemAttributes.IsSetProductGroup()) 
+                                    {
+                                        Console.WriteLine("                                ProductGroup");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ProductGroup);
+                                    }
+                                    if (merchantItemAttributes.IsSetPromotionalTag()) 
+                                    {
+                                        Console.WriteLine("                                PromotionalTag");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PromotionalTag);
+                                    }
+                                    if (merchantItemAttributes.IsSetPOBoxShippingExcluded()) 
+                                    {
+                                        Console.WriteLine("                                POBoxShippingExcluded");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.POBoxShippingExcluded);
+                                    }
+                                    if (merchantItemAttributes.IsSetPublicationDate()) 
+                                    {
+                                        Console.WriteLine("                                PublicationDate");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.PublicationDate);
+                                    }
+                                    if (merchantItemAttributes.IsSetPublisher()) 
+                                    {
+                                        Console.WriteLine("                                Publisher");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Publisher);
+                                    }
+                                    List<String> purchasingChannelList  =  merchantItemAttributes.PurchasingChannel;
+                                    foreach (String purchasingChannel in purchasingChannelList) 
+                                    { 
+                                        Console.WriteLine("                                PurchasingChannel");
+                                        Console.WriteLine("                                    {0}", purchasingChannel);
+                                    }	
+                                    if (merchantItemAttributes.IsSetReadingLevel()) 
+                                    {
+                                        Console.WriteLine("                                ReadingLevel");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ReadingLevel);
+                                    }
+                                    if (merchantItemAttributes.IsSetRecorderTrackCount()) 
+                                    {
+                                        Console.WriteLine("                                RecorderTrackCount");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.RecorderTrackCount);
+                                    }
+                                    if (merchantItemAttributes.IsSetRegionCode()) 
+                                    {
+                                        Console.WriteLine("                                RegionCode");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.RegionCode);
+                                    }
+                                    if (merchantItemAttributes.IsSetRegionOfOrigin()) 
+                                    {
+                                        Console.WriteLine("                                RegionOfOrigin");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.RegionOfOrigin);
+                                    }
+                                    if (merchantItemAttributes.IsSetReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                ReleaseDate");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ReleaseDate);
+                                    }
+                                    List<String> returnMethodList  =  merchantItemAttributes.ReturnMethod;
+                                    foreach (String returnMethod in returnMethodList) 
+                                    { 
+                                        Console.WriteLine("                                ReturnMethod");
+                                        Console.WriteLine("                                    {0}", returnMethod);
+                                    }	
+                                    if (merchantItemAttributes.IsSetRemovableMemory()) 
+                                    {
+                                        Console.WriteLine("                                RemovableMemory");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.RemovableMemory);
+                                    }
+                                    if (merchantItemAttributes.IsSetResolutionModes()) 
+                                    {
+                                        Console.WriteLine("                                ResolutionModes");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ResolutionModes);
+                                    }
+                                    if (merchantItemAttributes.IsSetReturnPolicy()) 
+                                    {
+                                        Console.WriteLine("                                ReturnPolicy");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.ReturnPolicy);
+                                    }
+                                    if (merchantItemAttributes.IsSetRingSize()) 
+                                    {
+                                        Console.WriteLine("                                RingSize");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.RingSize);
+                                    }
+                                    if (merchantItemAttributes.IsSetSafetyWarning()) 
+                                    {
+                                        Console.WriteLine("                                SafetyWarning");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SafetyWarning);
+                                    }
+                                    if (merchantItemAttributes.IsSetSalesRestriction()) 
+                                    {
+                                        Console.WriteLine("                                SalesRestriction");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SalesRestriction);
+                                    }
+                                    if (merchantItemAttributes.IsSetSecondaryCacheSize()) 
+                                    {
+                                        Console.WriteLine("                                SecondaryCacheSize");
+                                        NonNegativeIntegerWithUnits  secondaryCacheSize = merchantItemAttributes.SecondaryCacheSize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetSettingType()) 
+                                    {
+                                        Console.WriteLine("                                SettingType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SettingType);
+                                    }
+                                    if (merchantItemAttributes.IsSetSize()) 
+                                    {
+                                        Console.WriteLine("                                Size");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Size);
+                                    }
+                                    if (merchantItemAttributes.IsSetSKU()) 
+                                    {
+                                        Console.WriteLine("                                SKU");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SKU);
+                                    }
+                                    if (merchantItemAttributes.IsSetSoldInStores()) 
+                                    {
+                                        Console.WriteLine("                                SoldInStores");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SoldInStores);
+                                    }
+                                    if (merchantItemAttributes.IsSetSizePerPearl()) 
+                                    {
+                                        Console.WriteLine("                                SizePerPearl");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SizePerPearl);
+                                    }
+                                    if (merchantItemAttributes.IsSetSkillLevel()) 
+                                    {
+                                        Console.WriteLine("                                SkillLevel");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SkillLevel);
+                                    }
+                                    if (merchantItemAttributes.IsSetSoundCardDescription()) 
+                                    {
+                                        Console.WriteLine("                                SoundCardDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SoundCardDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetSpeakerCount()) 
+                                    {
+                                        Console.WriteLine("                                SpeakerCount");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SpeakerCount);
+                                    }
+                                    if (merchantItemAttributes.IsSetSpeakerDescription()) 
+                                    {
+                                        Console.WriteLine("                                SpeakerDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SpeakerDescription);
+                                    }
+                                    List<String> specialFeaturesList  =  merchantItemAttributes.SpecialFeatures;
+                                    foreach (String specialFeatures in specialFeaturesList) 
+                                    { 
+                                        Console.WriteLine("                                SpecialFeatures");
+                                        Console.WriteLine("                                    {0}", specialFeatures);
+                                    }	
+                                    if (merchantItemAttributes.IsSetStoneClarity()) 
+                                    {
+                                        Console.WriteLine("                                StoneClarity");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.StoneClarity);
+                                    }
+                                    if (merchantItemAttributes.IsSetStoneColor()) 
+                                    {
+                                        Console.WriteLine("                                StoneColor");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.StoneColor);
+                                    }
+                                    if (merchantItemAttributes.IsSetStoneCut()) 
+                                    {
+                                        Console.WriteLine("                                StoneCut");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.StoneCut);
+                                    }
+                                    if (merchantItemAttributes.IsSetStoneShape()) 
+                                    {
+                                        Console.WriteLine("                                StoneShape");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.StoneShape);
+                                    }
+                                    if (merchantItemAttributes.IsSetStoneWeight()) 
+                                    {
+                                        Console.WriteLine("                                StoneWeight");
+                                        DecimalWithUnits  stoneWeight = merchantItemAttributes.StoneWeight;
+                                    } 
+                                    if (merchantItemAttributes.IsSetStudio()) 
+                                    {
+                                        Console.WriteLine("                                Studio");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Studio);
+                                    }
+                                    if (merchantItemAttributes.IsSetSubscriptionLength()) 
+                                    {
+                                        Console.WriteLine("                                SubscriptionLength");
+                                        NonNegativeIntegerWithUnits  subscriptionLength = merchantItemAttributes.SubscriptionLength;
+                                    } 
+                                    List<String> supportedImageTypeList  =  merchantItemAttributes.SupportedImageType;
+                                    foreach (String supportedImageType in supportedImageTypeList) 
+                                    { 
+                                        Console.WriteLine("                                SupportedImageType");
+                                        Console.WriteLine("                                    {0}", supportedImageType);
+                                    }	
+                                    if (merchantItemAttributes.IsSetSystemBusSpeed()) 
+                                    {
+                                        Console.WriteLine("                                SystemBusSpeed");
+                                        DecimalWithUnits  systemBusSpeed = merchantItemAttributes.SystemBusSpeed;
+                                    } 
+                                    if (merchantItemAttributes.IsSetSystemMemorySizeMax()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemorySizeMax");
+                                        DecimalWithUnits  systemMemorySizeMax = merchantItemAttributes.SystemMemorySizeMax;
+                                    } 
+                                    if (merchantItemAttributes.IsSetSystemMemorySize()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemorySize");
+                                        DecimalWithUnits  systemMemorySize = merchantItemAttributes.SystemMemorySize;
+                                    } 
+                                    if (merchantItemAttributes.IsSetSystemMemoryType()) 
+                                    {
+                                        Console.WriteLine("                                SystemMemoryType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.SystemMemoryType);
+                                    }
+                                    if (merchantItemAttributes.IsSetTellingPageIndicator()) 
+                                    {
+                                        Console.WriteLine("                                TellingPageIndicator");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TellingPageIndicator);
+                                    }
+                                    if (merchantItemAttributes.IsSetTheatricalReleaseDate()) 
+                                    {
+                                        Console.WriteLine("                                TheatricalReleaseDate");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TheatricalReleaseDate);
+                                    }
+                                    if (merchantItemAttributes.IsSetTitle()) 
+                                    {
+                                        Console.WriteLine("                                Title");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Title);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalDiamondWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalDiamondWeight");
+                                        DecimalWithUnits  totalDiamondWeight = merchantItemAttributes.TotalDiamondWeight;
+                                    } 
+                                    if (merchantItemAttributes.IsSetTotalExternalBaysFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalExternalBaysFree");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalExternalBaysFree);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalFirewirePorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalFirewirePorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalFirewirePorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalGemWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalGemWeight");
+                                        DecimalWithUnits  totalGemWeight = merchantItemAttributes.TotalGemWeight;
+                                    } 
+                                    if (merchantItemAttributes.IsSetTotalInternalBaysFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalInternalBaysFree");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalInternalBaysFree);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalMetalWeight()) 
+                                    {
+                                        Console.WriteLine("                                TotalMetalWeight");
+                                        DecimalWithUnits  totalMetalWeight = merchantItemAttributes.TotalMetalWeight;
+                                    } 
+                                    if (merchantItemAttributes.IsSetTotalNTSCPALPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalNTSCPALPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalNTSCPALPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalParallelPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalParallelPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalParallelPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalPCCardSlots()) 
+                                    {
+                                        Console.WriteLine("                                TotalPCCardSlots");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalPCCardSlots);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalPCISlotsFree()) 
+                                    {
+                                        Console.WriteLine("                                TotalPCISlotsFree");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalPCISlotsFree);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalSerialPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalSerialPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalSerialPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalSVideoOutPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalSVideoOutPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalSVideoOutPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalUSB2Ports()) 
+                                    {
+                                        Console.WriteLine("                                TotalUSB2Ports");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalUSB2Ports);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalUSBPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalUSBPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalUSBPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetTotalVGAOutPorts()) 
+                                    {
+                                        Console.WriteLine("                                TotalVGAOutPorts");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.TotalVGAOutPorts);
+                                    }
+                                    if (merchantItemAttributes.IsSetUPC()) 
+                                    {
+                                        Console.WriteLine("                                UPC");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.UPC);
+                                    }
+                                    if (merchantItemAttributes.IsSetVariationDenomination()) 
+                                    {
+                                        Console.WriteLine("                                VariationDenomination");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.VariationDenomination);
+                                    }
+                                    if (merchantItemAttributes.IsSetVariationDescription()) 
+                                    {
+                                        Console.WriteLine("                                VariationDescription");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.VariationDescription);
+                                    }
+                                    if (merchantItemAttributes.IsSetVendorRebate()) 
+                                    {
+                                        Console.WriteLine("                                VendorRebate");
+                                        VendorRebate  vendorRebate = merchantItemAttributes.VendorRebate;
+                                        if (vendorRebate.IsSetType()) 
+                                        {
+                                            Console.WriteLine("                                    Type");
+                                            Console.WriteLine("                                        {0}", vendorRebate.Type);
+                                        }
+                                        if (vendorRebate.IsSetStartDate()) 
+                                        {
+                                            Console.WriteLine("                                    StartDate");
+                                            Console.WriteLine("                                        {0}", vendorRebate.StartDate);
+                                        }
+                                        if (vendorRebate.IsSetEndDate()) 
+                                        {
+                                            Console.WriteLine("                                    EndDate");
+                                            Console.WriteLine("                                        {0}", vendorRebate.EndDate);
+                                        }
+                                    } 
+                                    if (merchantItemAttributes.IsSetWarranty()) 
+                                    {
+                                        Console.WriteLine("                                Warranty");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.Warranty);
+                                    }
+                                    if (merchantItemAttributes.IsSetWatchMovementType()) 
+                                    {
+                                        Console.WriteLine("                                WatchMovementType");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.WatchMovementType);
+                                    }
+                                    if (merchantItemAttributes.IsSetWebsiteBuyability()) 
+                                    {
+                                        Console.WriteLine("                                WebsiteBuyability");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.WebsiteBuyability);
+                                    }
+                                    if (merchantItemAttributes.IsSetWaterResistanceDepth()) 
+                                    {
+                                        Console.WriteLine("                                WaterResistanceDepth");
+                                        DecimalWithUnits  waterResistanceDepth = merchantItemAttributes.WaterResistanceDepth;
+                                    } 
+                                    if (merchantItemAttributes.IsSetWirelessMicrophoneFrequency()) 
+                                    {
+                                        Console.WriteLine("                                WirelessMicrophoneFrequency");
+                                        Console.WriteLine("                                    {0}", merchantItemAttributes.WirelessMicrophoneFrequency);
+                                    }
+                                } 
+                                if (item.IsSetCollections()) 
+                                {
+                                    Console.WriteLine("                            Collections");
+                                    Collections  collections = item.Collections;
+                                    List<CollectionsCollection> collectionList = collections.Collection;
+                                    foreach (CollectionsCollection collection in collectionList) 
+                                    {
+                                        Console.WriteLine("                                Collection");
+                                        if (collection.IsSetCollectionSummary()) 
+                                        {
+                                            Console.WriteLine("                                    CollectionSummary");
+                                            CollectionSummary  collectionSummary = collection.CollectionSummary;
+                                            if (collectionSummary.IsSetLowestListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestListPrice");
+                                                Price  lowestListPrice = collectionSummary.LowestListPrice;
+                                                if (lowestListPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestListPrice.Amount);
+                                                }
+                                                if (lowestListPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestListPrice.CurrencyCode);
+                                                }
+                                                if (lowestListPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestListPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (collectionSummary.IsSetHighestListPrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestListPrice");
+                                                Price  highestListPrice = collectionSummary.HighestListPrice;
+                                                if (highestListPrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestListPrice.Amount);
+                                                }
+                                                if (highestListPrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestListPrice.CurrencyCode);
+                                                }
+                                                if (highestListPrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestListPrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (collectionSummary.IsSetLowestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        LowestSalePrice");
+                                                Price  lowestSalePrice = collectionSummary.LowestSalePrice;
+                                                if (lowestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.Amount);
+                                                }
+                                                if (lowestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.CurrencyCode);
+                                                }
+                                                if (lowestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", lowestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (collectionSummary.IsSetHighestSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        HighestSalePrice");
+                                                Price  highestSalePrice = collectionSummary.HighestSalePrice;
+                                                if (highestSalePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.Amount);
+                                                }
+                                                if (highestSalePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.CurrencyCode);
+                                                }
+                                                if (highestSalePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", highestSalePrice.FormattedPrice);
+                                                }
+                                            } 
+                                        } 
+                                        if (collection.IsSetCollectionParent()) 
+                                        {
+                                            Console.WriteLine("                                    CollectionParent");
+                                            CollectionParent  collectionParent = collection.CollectionParent;
+                                            if (collectionParent.IsSetASIN()) 
+                                            {
+                                                Console.WriteLine("                                        ASIN");
+                                                Console.WriteLine("                                            {0}", collectionParent.ASIN);
+                                            }
+                                            if (collectionParent.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", collectionParent.Title);
+                                            }
+                                        } 
+                                        List<CollectionItem> collectionItemList = collection.CollectionItem;
+                                        foreach (CollectionItem collectionItem in collectionItemList) 
+                                        {
+                                            Console.WriteLine("                                    CollectionItem");
+                                            if (collectionItem.IsSetASIN()) 
+                                            {
+                                                Console.WriteLine("                                        ASIN");
+                                                Console.WriteLine("                                            {0}", collectionItem.ASIN);
+                                            }
+                                            if (collectionItem.IsSetTitle()) 
+                                            {
+                                                Console.WriteLine("                                        Title");
+                                                Console.WriteLine("                                            {0}", collectionItem.Title);
+                                            }
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetSubjects()) 
+                                {
+                                    Console.WriteLine("                            Subjects");
+                                    Subjects  subjects = item.Subjects;
+                                    List<String> subjectList  =  subjects.Subject;
+                                    foreach (String subject in subjectList) 
+                                    { 
+                                        Console.WriteLine("                                Subject");
+                                        Console.WriteLine("                                    {0}", subject);
+                                    }	
+                                } 
+                                if (item.IsSetOfferSummary()) 
+                                {
+                                    Console.WriteLine("                            OfferSummary");
+                                    OfferSummary  offerSummary = item.OfferSummary;
+                                    if (offerSummary.IsSetLowestNewPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestNewPrice");
+                                        Price  lowestNewPrice = offerSummary.LowestNewPrice;
+                                        if (lowestNewPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestNewPrice.Amount);
+                                        }
+                                        if (lowestNewPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestNewPrice.CurrencyCode);
+                                        }
+                                        if (lowestNewPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestNewPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerSummary.IsSetLowestUsedPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestUsedPrice");
+                                        Price  lowestUsedPrice = offerSummary.LowestUsedPrice;
+                                        if (lowestUsedPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestUsedPrice.Amount);
+                                        }
+                                        if (lowestUsedPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestUsedPrice.CurrencyCode);
+                                        }
+                                        if (lowestUsedPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestUsedPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerSummary.IsSetLowestCollectiblePrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestCollectiblePrice");
+                                        Price  lowestCollectiblePrice = offerSummary.LowestCollectiblePrice;
+                                        if (lowestCollectiblePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestCollectiblePrice.Amount);
+                                        }
+                                        if (lowestCollectiblePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestCollectiblePrice.CurrencyCode);
+                                        }
+                                        if (lowestCollectiblePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestCollectiblePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerSummary.IsSetLowestRefurbishedPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestRefurbishedPrice");
+                                        Price  lowestRefurbishedPrice = offerSummary.LowestRefurbishedPrice;
+                                        if (lowestRefurbishedPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestRefurbishedPrice.Amount);
+                                        }
+                                        if (lowestRefurbishedPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestRefurbishedPrice.CurrencyCode);
+                                        }
+                                        if (lowestRefurbishedPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestRefurbishedPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (offerSummary.IsSetTotalNew()) 
+                                    {
+                                        Console.WriteLine("                                TotalNew");
+                                        Console.WriteLine("                                    {0}", offerSummary.TotalNew);
+                                    }
+                                    if (offerSummary.IsSetTotalUsed()) 
+                                    {
+                                        Console.WriteLine("                                TotalUsed");
+                                        Console.WriteLine("                                    {0}", offerSummary.TotalUsed);
+                                    }
+                                    if (offerSummary.IsSetTotalCollectible()) 
+                                    {
+                                        Console.WriteLine("                                TotalCollectible");
+                                        Console.WriteLine("                                    {0}", offerSummary.TotalCollectible);
+                                    }
+                                    if (offerSummary.IsSetTotalRefurbished()) 
+                                    {
+                                        Console.WriteLine("                                TotalRefurbished");
+                                        Console.WriteLine("                                    {0}", offerSummary.TotalRefurbished);
+                                    }
+                                } 
+                                if (item.IsSetOffers()) 
+                                {
+                                    Console.WriteLine("                            Offers");
+                                    Offers  offers = item.Offers;
+                                    if (offers.IsSetTotalOffers()) 
+                                    {
+                                        Console.WriteLine("                                TotalOffers");
+                                        Console.WriteLine("                                    {0}", offers.TotalOffers);
+                                    }
+                                    if (offers.IsSetTotalOfferPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalOfferPages");
+                                        Console.WriteLine("                                    {0}", offers.TotalOfferPages);
+                                    }
+                                    List<Offer> offerList = offers.Offer;
+                                    foreach (Offer offer in offerList) 
+                                    {
+                                        Console.WriteLine("                                Offer");
+                                        if (offer.IsSetMerchant()) 
+                                        {
+                                            Console.WriteLine("                                    Merchant");
+                                            Merchant  merchant = offer.Merchant;
+                                            if (merchant.IsSetMerchantId()) 
+                                            {
+                                                Console.WriteLine("                                        MerchantId");
+                                                Console.WriteLine("                                            {0}", merchant.MerchantId);
+                                            }
+                                            if (merchant.IsSetName()) 
+                                            {
+                                                Console.WriteLine("                                        Name");
+                                                Console.WriteLine("                                            {0}", merchant.Name);
+                                            }
+                                            if (merchant.IsSetGlancePage()) 
+                                            {
+                                                Console.WriteLine("                                        GlancePage");
+                                                Console.WriteLine("                                            {0}", merchant.GlancePage);
+                                            }
+                                            if (merchant.IsSetAverageFeedbackRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageFeedbackRating");
+                                                Console.WriteLine("                                            {0}", merchant.AverageFeedbackRating);
+                                            }
+                                            if (merchant.IsSetTotalFeedback()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFeedback");
+                                                Console.WriteLine("                                            {0}", merchant.TotalFeedback);
+                                            }
+                                            if (merchant.IsSetTotalFeedbackPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFeedbackPages");
+                                                Console.WriteLine("                                            {0}", merchant.TotalFeedbackPages);
+                                            }
+                                        } 
+                                        if (offer.IsSetSeller()) 
+                                        {
+                                            Console.WriteLine("                                    Seller");
+                                            Seller  seller = offer.Seller;
+                                            if (seller.IsSetSellerId()) 
+                                            {
+                                                Console.WriteLine("                                        SellerId");
+                                                Console.WriteLine("                                            {0}", seller.SellerId);
+                                            }
+                                            if (seller.IsSetSellerName()) 
+                                            {
+                                                Console.WriteLine("                                        SellerName");
+                                                Console.WriteLine("                                            {0}", seller.SellerName);
+                                            }
+                                            if (seller.IsSetSellerLegalName()) 
+                                            {
+                                                Console.WriteLine("                                        SellerLegalName");
+                                                Console.WriteLine("                                            {0}", seller.SellerLegalName);
+                                            }
+                                            if (seller.IsSetNickname()) 
+                                            {
+                                                Console.WriteLine("                                        Nickname");
+                                                Console.WriteLine("                                            {0}", seller.Nickname);
+                                            }
+                                            if (seller.IsSetGlancePage()) 
+                                            {
+                                                Console.WriteLine("                                        GlancePage");
+                                                Console.WriteLine("                                            {0}", seller.GlancePage);
+                                            }
+                                            if (seller.IsSetAbout()) 
+                                            {
+                                                Console.WriteLine("                                        About");
+                                                Console.WriteLine("                                            {0}", seller.About);
+                                            }
+                                            if (seller.IsSetMoreAbout()) 
+                                            {
+                                                Console.WriteLine("                                        MoreAbout");
+                                                Console.WriteLine("                                            {0}", seller.MoreAbout);
+                                            }
+                                            if (seller.IsSetLocation()) 
+                                            {
+                                                Console.WriteLine("                                        Location");
+                                                SellerLocation  location = seller.Location;
+                                                if (location.IsSetUserDefinedLocation()) 
+                                                {
+                                                    Console.WriteLine("                                            UserDefinedLocation");
+                                                    Console.WriteLine("                                                {0}", location.UserDefinedLocation);
+                                                }
+                                                if (location.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", location.City);
+                                                }
+                                                if (location.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", location.State);
+                                                }
+                                                if (location.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", location.Country);
+                                                }
+                                            } 
+                                            if (seller.IsSetAverageFeedbackRating()) 
+                                            {
+                                                Console.WriteLine("                                        AverageFeedbackRating");
+                                                Console.WriteLine("                                            {0}", seller.AverageFeedbackRating);
+                                            }
+                                            if (seller.IsSetTotalFeedback()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFeedback");
+                                                Console.WriteLine("                                            {0}", seller.TotalFeedback);
+                                            }
+                                            if (seller.IsSetTotalFeedbackPages()) 
+                                            {
+                                                Console.WriteLine("                                        TotalFeedbackPages");
+                                                Console.WriteLine("                                            {0}", seller.TotalFeedbackPages);
+                                            }
+                                            if (seller.IsSetSellerFeedbackSummary()) 
+                                            {
+                                                Console.WriteLine("                                        SellerFeedbackSummary");
+                                                SellerFeedbackSummary  sellerFeedbackSummary = seller.SellerFeedbackSummary;
+                                                List<FeedbackDateRange> feedbackDateRangeList = sellerFeedbackSummary.FeedbackDateRange;
+                                                foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) 
+                                                {
+                                                    Console.WriteLine("                                            FeedbackDateRange");
+                                                    List<SellerFeedbackRating> sellerFeedbackRatingList = feedbackDateRange.SellerFeedbackRating;
+                                                    foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) 
+                                                    {
+                                                        Console.WriteLine("                                                SellerFeedbackRating");
+                                                        if (sellerFeedbackRating.IsSetCount()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Count");
+                                                            Console.WriteLine("                                                        {0}", sellerFeedbackRating.Count);
+                                                        }
+                                                        if (sellerFeedbackRating.IsSetPercentage()) 
+                                                        {
+                                                            Console.WriteLine("                                                    Percentage");
+                                                            Console.WriteLine("                                                        {0}", sellerFeedbackRating.Percentage);
+                                                        }
+                                                    }
+                                                }
+                                            } 
+                                            if (seller.IsSetSellerFeedback()) 
+                                            {
+                                                Console.WriteLine("                                        SellerFeedback");
+                                                SellerFeedback  sellerFeedback = seller.SellerFeedback;
+                                                List<Feedback> feedbackList = sellerFeedback.Feedback;
+                                                foreach (Feedback feedback in feedbackList) 
+                                                {
+                                                    Console.WriteLine("                                            Feedback");
+                                                    if (feedback.IsSetRating()) 
+                                                    {
+                                                        Console.WriteLine("                                                Rating");
+                                                        Console.WriteLine("                                                    {0}", feedback.Rating);
+                                                    }
+                                                    if (feedback.IsSetComment()) 
+                                                    {
+                                                        Console.WriteLine("                                                Comment");
+                                                        Console.WriteLine("                                                    {0}", feedback.Comment);
+                                                    }
+                                                    if (feedback.IsSetDate()) 
+                                                    {
+                                                        Console.WriteLine("                                                Date");
+                                                        Console.WriteLine("                                                    {0}", feedback.Date);
+                                                    }
+                                                    if (feedback.IsSetRatedBy()) 
+                                                    {
+                                                        Console.WriteLine("                                                RatedBy");
+                                                        Console.WriteLine("                                                    {0}", feedback.RatedBy);
+                                                    }
+                                                }
+                                            } 
+                                        } 
+                                        if (offer.IsSetOfferAttributes()) 
+                                        {
+                                            Console.WriteLine("                                    OfferAttributes");
+                                            OfferAttributes  offerAttributes = offer.OfferAttributes;
+                                            if (offerAttributes.IsSetCondition()) 
+                                            {
+                                                Console.WriteLine("                                        Condition");
+                                                Console.WriteLine("                                            {0}", offerAttributes.Condition);
+                                            }
+                                            if (offerAttributes.IsSetSubCondition()) 
+                                            {
+                                                Console.WriteLine("                                        SubCondition");
+                                                Console.WriteLine("                                            {0}", offerAttributes.SubCondition);
+                                            }
+                                            if (offerAttributes.IsSetConditionNote()) 
+                                            {
+                                                Console.WriteLine("                                        ConditionNote");
+                                                Console.WriteLine("                                            {0}", offerAttributes.ConditionNote);
+                                            }
+                                            if (offerAttributes.IsSetWillShipExpedited()) 
+                                            {
+                                                Console.WriteLine("                                        WillShipExpedited");
+                                                Console.WriteLine("                                            {0}", offerAttributes.WillShipExpedited);
+                                            }
+                                            if (offerAttributes.IsSetWillShipInternational()) 
+                                            {
+                                                Console.WriteLine("                                        WillShipInternational");
+                                                Console.WriteLine("                                            {0}", offerAttributes.WillShipInternational);
+                                            }
+                                        } 
+                                        List<OfferListing> offerListingList = offer.OfferListing;
+                                        foreach (OfferListing offerListing in offerListingList) 
+                                        {
+                                            Console.WriteLine("                                    OfferListing");
+                                            if (offerListing.IsSetOfferListingId()) 
+                                            {
+                                                Console.WriteLine("                                        OfferListingId");
+                                                Console.WriteLine("                                            {0}", offerListing.OfferListingId);
+                                            }
+                                            if (offerListing.IsSetExchangeId()) 
+                                            {
+                                                Console.WriteLine("                                        ExchangeId");
+                                                Console.WriteLine("                                            {0}", offerListing.ExchangeId);
+                                            }
+                                            if (offerListing.IsSetPrice()) 
+                                            {
+                                                Console.WriteLine("                                        Price");
+                                                Price  price = offerListing.Price;
+                                                if (price.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", price.Amount);
+                                                }
+                                                if (price.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", price.CurrencyCode);
+                                                }
+                                                if (price.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", price.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerListing.IsSetSalePrice()) 
+                                            {
+                                                Console.WriteLine("                                        SalePrice");
+                                                Price  salePrice = offerListing.SalePrice;
+                                                if (salePrice.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", salePrice.Amount);
+                                                }
+                                                if (salePrice.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", salePrice.CurrencyCode);
+                                                }
+                                                if (salePrice.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", salePrice.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerListing.IsSetAmountSaved()) 
+                                            {
+                                                Console.WriteLine("                                        AmountSaved");
+                                                Price  amountSaved = offerListing.AmountSaved;
+                                                if (amountSaved.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", amountSaved.Amount);
+                                                }
+                                                if (amountSaved.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", amountSaved.CurrencyCode);
+                                                }
+                                                if (amountSaved.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", amountSaved.FormattedPrice);
+                                                }
+                                            } 
+                                            if (offerListing.IsSetPercentageSaved()) 
+                                            {
+                                                Console.WriteLine("                                        PercentageSaved");
+                                                Console.WriteLine("                                            {0}", offerListing.PercentageSaved);
+                                            }
+                                            if (offerListing.IsSetAvailability()) 
+                                            {
+                                                Console.WriteLine("                                        Availability");
+                                                Console.WriteLine("                                            {0}", offerListing.Availability);
+                                            }
+                                            if (offerListing.IsSetAvailabilityAttributes()) 
+                                            {
+                                                Console.WriteLine("                                        AvailabilityAttributes");
+                                                AvailabilityAttributes  availabilityAttributes = offerListing.AvailabilityAttributes;
+                                                if (availabilityAttributes.IsSetAvailabilityType()) 
+                                                {
+                                                    Console.WriteLine("                                            AvailabilityType");
+                                                    Console.WriteLine("                                                {0}", availabilityAttributes.AvailabilityType);
+                                                }
+                                                if (availabilityAttributes.IsSetIsPreorder()) 
+                                                {
+                                                    Console.WriteLine("                                            IsPreorder");
+                                                    Console.WriteLine("                                                {0}", availabilityAttributes.IsPreorder);
+                                                }
+                                                if (availabilityAttributes.IsSetMinimumHours()) 
+                                                {
+                                                    Console.WriteLine("                                            MinimumHours");
+                                                    Console.WriteLine("                                                {0}", availabilityAttributes.MinimumHours);
+                                                }
+                                                if (availabilityAttributes.IsSetMaximumHours()) 
+                                                {
+                                                    Console.WriteLine("                                            MaximumHours");
+                                                    Console.WriteLine("                                                {0}", availabilityAttributes.MaximumHours);
+                                                }
+                                            } 
+                                            if (offerListing.IsSetQuantity()) 
+                                            {
+                                                Console.WriteLine("                                        Quantity");
+                                                Console.WriteLine("                                            {0}", offerListing.Quantity);
+                                            }
+                                            if (offerListing.IsSetISPUStoreAddress()) 
+                                            {
+                                                Console.WriteLine("                                        ISPUStoreAddress");
+                                                Address  ISPUStoreAddress = offerListing.ISPUStoreAddress;
+                                                if (ISPUStoreAddress.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.Name);
+                                                }
+                                                if (ISPUStoreAddress.IsSetAddress1()) 
+                                                {
+                                                    Console.WriteLine("                                            Address1");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.Address1);
+                                                }
+                                                if (ISPUStoreAddress.IsSetAddress2()) 
+                                                {
+                                                    Console.WriteLine("                                            Address2");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.Address2);
+                                                }
+                                                if (ISPUStoreAddress.IsSetAddress3()) 
+                                                {
+                                                    Console.WriteLine("                                            Address3");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.Address3);
+                                                }
+                                                if (ISPUStoreAddress.IsSetCity()) 
+                                                {
+                                                    Console.WriteLine("                                            City");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.City);
+                                                }
+                                                if (ISPUStoreAddress.IsSetState()) 
+                                                {
+                                                    Console.WriteLine("                                            State");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.State);
+                                                }
+                                                if (ISPUStoreAddress.IsSetPostalCode()) 
+                                                {
+                                                    Console.WriteLine("                                            PostalCode");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.PostalCode);
+                                                }
+                                                if (ISPUStoreAddress.IsSetCountry()) 
+                                                {
+                                                    Console.WriteLine("                                            Country");
+                                                    Console.WriteLine("                                                {0}", ISPUStoreAddress.Country);
+                                                }
+                                            } 
+                                            if (offerListing.IsSetISPUStoreHours()) 
+                                            {
+                                                Console.WriteLine("                                        ISPUStoreHours");
+                                                Console.WriteLine("                                            {0}", offerListing.ISPUStoreHours);
+                                            }
+                                            if (offerListing.IsSetIsEligibleForSuperSaverShipping()) 
+                                            {
+                                                Console.WriteLine("                                        IsEligibleForSuperSaverShipping");
+                                                Console.WriteLine("                                            {0}", offerListing.IsEligibleForSuperSaverShipping);
+                                            }
+                                            if (offerListing.IsSetSalesRestriction()) 
+                                            {
+                                                Console.WriteLine("                                        SalesRestriction");
+                                                Console.WriteLine("                                            {0}", offerListing.SalesRestriction);
+                                            }
+                                            List<ShippingCharge> shippingChargeList = offerListing.ShippingCharge;
+                                            foreach (ShippingCharge shippingCharge in shippingChargeList) 
+                                            {
+                                                Console.WriteLine("                                        ShippingCharge");
+                                                if (shippingCharge.IsSetShippingType()) 
+                                                {
+                                                    Console.WriteLine("                                            ShippingType");
+                                                    Console.WriteLine("                                                {0}", shippingCharge.ShippingType);
+                                                }
+                                                if (shippingCharge.IsSetShippingPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            ShippingPrice");
+                                                    Price  shippingPrice = shippingCharge.ShippingPrice;
+                                                    if (shippingPrice.IsSetAmount()) 
+                                                    {
+                                                        Console.WriteLine("                                                Amount");
+                                                        Console.WriteLine("                                                    {0}", shippingPrice.Amount);
+                                                    }
+                                                    if (shippingPrice.IsSetCurrencyCode()) 
+                                                    {
+                                                        Console.WriteLine("                                                CurrencyCode");
+                                                        Console.WriteLine("                                                    {0}", shippingPrice.CurrencyCode);
+                                                    }
+                                                    if (shippingPrice.IsSetFormattedPrice()) 
+                                                    {
+                                                        Console.WriteLine("                                                FormattedPrice");
+                                                        Console.WriteLine("                                                    {0}", shippingPrice.FormattedPrice);
+                                                    }
+                                                } 
+                                            }
+                                        }
+                                        if (offer.IsSetLoyaltyPoints()) 
+                                        {
+                                            Console.WriteLine("                                    LoyaltyPoints");
+                                            LoyaltyPoints  loyaltyPoints = offer.LoyaltyPoints;
+                                            if (loyaltyPoints.IsSetPoints()) 
+                                            {
+                                                Console.WriteLine("                                        Points");
+                                                Console.WriteLine("                                            {0}", loyaltyPoints.Points);
+                                            }
+                                            if (loyaltyPoints.IsSetTypicalRedemptionValue()) 
+                                            {
+                                                Console.WriteLine("                                        TypicalRedemptionValue");
+                                                Price  typicalRedemptionValue = loyaltyPoints.TypicalRedemptionValue;
+                                                if (typicalRedemptionValue.IsSetAmount()) 
+                                                {
+                                                    Console.WriteLine("                                            Amount");
+                                                    Console.WriteLine("                                                {0}", typicalRedemptionValue.Amount);
+                                                }
+                                                if (typicalRedemptionValue.IsSetCurrencyCode()) 
+                                                {
+                                                    Console.WriteLine("                                            CurrencyCode");
+                                                    Console.WriteLine("                                                {0}", typicalRedemptionValue.CurrencyCode);
+                                                }
+                                                if (typicalRedemptionValue.IsSetFormattedPrice()) 
+                                                {
+                                                    Console.WriteLine("                                            FormattedPrice");
+                                                    Console.WriteLine("                                                {0}", typicalRedemptionValue.FormattedPrice);
+                                                }
+                                            } 
+                                        } 
+                                        if (offer.IsSetPromotions()) 
+                                        {
+                                            Console.WriteLine("                                    Promotions");
+                                            Promotions  promotions = offer.Promotions;
+                                            List<Promotion> promotionList = promotions.Promotion;
+                                            foreach (Promotion promotion in promotionList) 
+                                            {
+                                                Console.WriteLine("                                        Promotion");
+                                                if (promotion.IsSetSummary()) 
+                                                {
+                                                    Console.WriteLine("                                            Summary");
+                                                    PromotionSummary  summary = promotion.Summary;
+                                                    if (summary.IsSetPromotionId()) 
+                                                    {
+                                                        Console.WriteLine("                                                PromotionId");
+                                                        Console.WriteLine("                                                    {0}", summary.PromotionId);
+                                                    }
+                                                    if (summary.IsSetCategory()) 
+                                                    {
+                                                        Console.WriteLine("                                                Category");
+                                                        Console.WriteLine("                                                    {0}", summary.Category);
+                                                    }
+                                                    if (summary.IsSetStartDate()) 
+                                                    {
+                                                        Console.WriteLine("                                                StartDate");
+                                                        Console.WriteLine("                                                    {0}", summary.StartDate);
+                                                    }
+                                                    if (summary.IsSetEndDate()) 
+                                                    {
+                                                        Console.WriteLine("                                                EndDate");
+                                                        Console.WriteLine("                                                    {0}", summary.EndDate);
+                                                    }
+                                                    if (summary.IsSetEligibilityRequirementDescription()) 
+                                                    {
+                                                        Console.WriteLine("                                                EligibilityRequirementDescription");
+                                                        Console.WriteLine("                                                    {0}", summary.EligibilityRequirementDescription);
+                                                    }
+                                                    if (summary.IsSetBenefitDescription()) 
+                                                    {
+                                                        Console.WriteLine("                                                BenefitDescription");
+                                                        Console.WriteLine("                                                    {0}", summary.BenefitDescription);
+                                                    }
+                                                    if (summary.IsSetTermsAndConditions()) 
+                                                    {
+                                                        Console.WriteLine("                                                TermsAndConditions");
+                                                        Console.WriteLine("                                                    {0}", summary.TermsAndConditions);
+                                                    }
+                                                } 
+                                                if (promotion.IsSetDetails()) 
+                                                {
+                                                    Console.WriteLine("                                            Details");
+                                                    PromotionDetails  details = promotion.Details;
+                                                    if (details.IsSetMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantId");
+                                                        Console.WriteLine("                                                    {0}", details.MerchantId);
+                                                    }
+                                                    if (details.IsSetOwningMerchantId()) 
+                                                    {
+                                                        Console.WriteLine("                                                OwningMerchantId");
+                                                        Console.WriteLine("                                                    {0}", details.OwningMerchantId);
+                                                    }
+                                                    if (details.IsSetPromotionId()) 
+                                                    {
+                                                        Console.WriteLine("                                                PromotionId");
+                                                        Console.WriteLine("                                                    {0}", details.PromotionId);
+                                                    }
+                                                    if (details.IsSetPromotionCategory()) 
+                                                    {
+                                                        Console.WriteLine("                                                PromotionCategory");
+                                                        Console.WriteLine("                                                    {0}", details.PromotionCategory);
+                                                    }
+                                                    if (details.IsSetMerchantPromotionId()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchantPromotionId");
+                                                        Console.WriteLine("                                                    {0}", details.MerchantPromotionId);
+                                                    }
+                                                    if (details.IsSetGroupClaimCode()) 
+                                                    {
+                                                        Console.WriteLine("                                                GroupClaimCode");
+                                                        Console.WriteLine("                                                    {0}", details.GroupClaimCode);
+                                                    }
+                                                    if (details.IsSetCouponCombinationType()) 
+                                                    {
+                                                        Console.WriteLine("                                                CouponCombinationType");
+                                                        Console.WriteLine("                                                    {0}", details.CouponCombinationType);
+                                                    }
+                                                    if (details.IsSetStartDate()) 
+                                                    {
+                                                        Console.WriteLine("                                                StartDate");
+                                                        Console.WriteLine("                                                    {0}", details.StartDate);
+                                                    }
+                                                    if (details.IsSetEndDate()) 
+                                                    {
+                                                        Console.WriteLine("                                                EndDate");
+                                                        Console.WriteLine("                                                    {0}", details.EndDate);
+                                                    }
+                                                    if (details.IsSetTermsAndConditions()) 
+                                                    {
+                                                        Console.WriteLine("                                                TermsAndConditions");
+                                                        Console.WriteLine("                                                    {0}", details.TermsAndConditions);
+                                                    }
+                                                    if (details.IsSetEligibilityRequirements()) 
+                                                    {
+                                                        Console.WriteLine("                                                EligibilityRequirements");
+                                                        PromotionEligibilityRequirements  eligibilityRequirements = details.EligibilityRequirements;
+                                                        List<PromotionEligibilityRequirement> eligibilityRequirementList = eligibilityRequirements.EligibilityRequirement;
+                                                        foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) 
+                                                        {
+                                                            Console.WriteLine("                                                    EligibilityRequirement");
+                                                            if (eligibilityRequirement.IsSetEligibilityRequirementType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        EligibilityRequirementType");
+                                                                Console.WriteLine("                                                            {0}", eligibilityRequirement.EligibilityRequirementType);
+                                                            }
+                                                            if (eligibilityRequirement.IsSetQuantity()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Quantity");
+                                                                Console.WriteLine("                                                            {0}", eligibilityRequirement.Quantity);
+                                                            }
+                                                            if (eligibilityRequirement.IsSetCurrencyAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        CurrencyAmount");
+                                                                Price  currencyAmount = eligibilityRequirement.CurrencyAmount;
+                                                                if (currencyAmount.IsSetAmount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Amount");
+                                                                    Console.WriteLine("                                                                {0}", currencyAmount.Amount);
+                                                                }
+                                                                if (currencyAmount.IsSetCurrencyCode()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            CurrencyCode");
+                                                                    Console.WriteLine("                                                                {0}", currencyAmount.CurrencyCode);
+                                                                }
+                                                                if (currencyAmount.IsSetFormattedPrice()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            FormattedPrice");
+                                                                    Console.WriteLine("                                                                {0}", currencyAmount.FormattedPrice);
+                                                                }
+                                                            } 
+                                                        }
+                                                    } 
+                                                    if (details.IsSetBenefits()) 
+                                                    {
+                                                        Console.WriteLine("                                                Benefits");
+                                                        PromotionBenefits  benefits = details.Benefits;
+                                                        List<PromotionBenefit> benefitList = benefits.Benefit;
+                                                        foreach (PromotionBenefit benefit in benefitList) 
+                                                        {
+                                                            Console.WriteLine("                                                    Benefit");
+                                                            if (benefit.IsSetBenefitType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        BenefitType");
+                                                                Console.WriteLine("                                                            {0}", benefit.BenefitType);
+                                                            }
+                                                            if (benefit.IsSetComponentType()) 
+                                                            {
+                                                                Console.WriteLine("                                                        ComponentType");
+                                                                Console.WriteLine("                                                            {0}", benefit.ComponentType);
+                                                            }
+                                                            if (benefit.IsSetQuantity()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Quantity");
+                                                                Console.WriteLine("                                                            {0}", benefit.Quantity);
+                                                            }
+                                                            if (benefit.IsSetPercentOff()) 
+                                                            {
+                                                                Console.WriteLine("                                                        PercentOff");
+                                                                Console.WriteLine("                                                            {0}", benefit.PercentOff);
+                                                            }
+                                                            if (benefit.IsSetFixedAmount()) 
+                                                            {
+                                                                Console.WriteLine("                                                        FixedAmount");
+                                                                Price  fixedAmount = benefit.FixedAmount;
+                                                                if (fixedAmount.IsSetAmount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Amount");
+                                                                    Console.WriteLine("                                                                {0}", fixedAmount.Amount);
+                                                                }
+                                                                if (fixedAmount.IsSetCurrencyCode()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            CurrencyCode");
+                                                                    Console.WriteLine("                                                                {0}", fixedAmount.CurrencyCode);
+                                                                }
+                                                                if (fixedAmount.IsSetFormattedPrice()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            FormattedPrice");
+                                                                    Console.WriteLine("                                                                {0}", fixedAmount.FormattedPrice);
+                                                                }
+                                                            } 
+                                                            if (benefit.IsSetCeiling()) 
+                                                            {
+                                                                Console.WriteLine("                                                        Ceiling");
+                                                                Price  ceiling = benefit.Ceiling;
+                                                                if (ceiling.IsSetAmount()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            Amount");
+                                                                    Console.WriteLine("                                                                {0}", ceiling.Amount);
+                                                                }
+                                                                if (ceiling.IsSetCurrencyCode()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            CurrencyCode");
+                                                                    Console.WriteLine("                                                                {0}", ceiling.CurrencyCode);
+                                                                }
+                                                                if (ceiling.IsSetFormattedPrice()) 
+                                                                {
+                                                                    Console.WriteLine("                                                            FormattedPrice");
+                                                                    Console.WriteLine("                                                                {0}", ceiling.FormattedPrice);
+                                                                }
+                                                            } 
+                                                        }
+                                                    } 
+                                                    if (details.IsSetItemApplicability()) 
+                                                    {
+                                                        Console.WriteLine("                                                ItemApplicability");
+                                                        PromotionItemApplicability  itemApplicability = details.ItemApplicability;
+                                                        if (itemApplicability.IsSetASIN()) 
+                                                        {
+                                                            Console.WriteLine("                                                    ASIN");
+                                                            Console.WriteLine("                                                        {0}", itemApplicability.ASIN);
+                                                        }
+                                                        if (itemApplicability.IsSetIsInBenefitSet()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsInBenefitSet");
+                                                            Console.WriteLine("                                                        {0}", itemApplicability.IsInBenefitSet);
+                                                        }
+                                                        if (itemApplicability.IsSetIsInEligibilityRequirementSet()) 
+                                                        {
+                                                            Console.WriteLine("                                                    IsInEligibilityRequirementSet");
+                                                            Console.WriteLine("                                                        {0}", itemApplicability.IsInEligibilityRequirementSet);
+                                                        }
+                                                    } 
+                                                    if (details.IsSetMerchandisingMessage()) 
+                                                    {
+                                                        Console.WriteLine("                                                MerchandisingMessage");
+                                                        Console.WriteLine("                                                    {0}", details.MerchandisingMessage);
+                                                    }
+                                                } 
+                                            }
+                                        } 
+                                    }
+                                } 
+                                if (item.IsSetVariationSummary()) 
+                                {
+                                    Console.WriteLine("                            VariationSummary");
+                                    VariationSummary  variationSummary = item.VariationSummary;
+                                    if (variationSummary.IsSetLowestPrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestPrice");
+                                        Price  lowestPrice = variationSummary.LowestPrice;
+                                        if (lowestPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestPrice.Amount);
+                                        }
+                                        if (lowestPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestPrice.CurrencyCode);
+                                        }
+                                        if (lowestPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (variationSummary.IsSetHighestPrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestPrice");
+                                        Price  highestPrice = variationSummary.HighestPrice;
+                                        if (highestPrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestPrice.Amount);
+                                        }
+                                        if (highestPrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestPrice.CurrencyCode);
+                                        }
+                                        if (highestPrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestPrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (variationSummary.IsSetLowestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                LowestSalePrice");
+                                        Price  lowestSalePrice = variationSummary.LowestSalePrice;
+                                        if (lowestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.Amount);
+                                        }
+                                        if (lowestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.CurrencyCode);
+                                        }
+                                        if (lowestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", lowestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (variationSummary.IsSetHighestSalePrice()) 
+                                    {
+                                        Console.WriteLine("                                HighestSalePrice");
+                                        Price  highestSalePrice = variationSummary.HighestSalePrice;
+                                        if (highestSalePrice.IsSetAmount()) 
+                                        {
+                                            Console.WriteLine("                                    Amount");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.Amount);
+                                        }
+                                        if (highestSalePrice.IsSetCurrencyCode()) 
+                                        {
+                                            Console.WriteLine("                                    CurrencyCode");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.CurrencyCode);
+                                        }
+                                        if (highestSalePrice.IsSetFormattedPrice()) 
+                                        {
+                                            Console.WriteLine("                                    FormattedPrice");
+                                            Console.WriteLine("                                        {0}", highestSalePrice.FormattedPrice);
+                                        }
+                                    } 
+                                    if (variationSummary.IsSetSingleMerchantId()) 
+                                    {
+                                        Console.WriteLine("                                SingleMerchantId");
+                                        Console.WriteLine("                                    {0}", variationSummary.SingleMerchantId);
+                                    }
+                                } 
+                                if (item.IsSetVariations()) 
+                                {
+                                    Console.WriteLine("                            Variations");
+                                    Variations  variations = item.Variations;
+                                    if (variations.IsSetTotalVariations()) 
+                                    {
+                                        Console.WriteLine("                                TotalVariations");
+                                        Console.WriteLine("                                    {0}", variations.TotalVariations);
+                                    }
+                                    if (variations.IsSetTotalVariationPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalVariationPages");
+                                        Console.WriteLine("                                    {0}", variations.TotalVariationPages);
+                                    }
+                                    if (variations.IsSetVariationDimensions()) 
+                                    {
+                                        Console.WriteLine("                                VariationDimensions");
+                                        VariationDimensions  variationDimensions = variations.VariationDimensions;
+                                        List<String> variationDimensionList  =  variationDimensions.VariationDimension;
+                                        foreach (String variationDimension in variationDimensionList) 
+                                        { 
+                                            Console.WriteLine("                                    VariationDimension");
+                                            Console.WriteLine("                                        {0}", variationDimension);
+                                        }	
+                                    } 
+                                } 
+                                if (item.IsSetCustomerReviews()) 
+                                {
+                                    Console.WriteLine("                            CustomerReviews");
+                                    CustomerReviews  customerReviews = item.CustomerReviews;
+                                    if (customerReviews.IsSetAverageRating()) 
+                                    {
+                                        Console.WriteLine("                                AverageRating");
+                                        Console.WriteLine("                                    {0}", customerReviews.AverageRating);
+                                    }
+                                    if (customerReviews.IsSetTotalReviews()) 
+                                    {
+                                        Console.WriteLine("                                TotalReviews");
+                                        Console.WriteLine("                                    {0}", customerReviews.TotalReviews);
+                                    }
+                                    if (customerReviews.IsSetTotalReviewPages()) 
+                                    {
+                                        Console.WriteLine("                                TotalReviewPages");
+                                        Console.WriteLine("                                    {0}", customerReviews.TotalReviewPages);
+                                    }
+                                    List<Review> reviewList = customerReviews.Review;
+                                    foreach (Review review in reviewList) 
+                                    {
+                                        Console.WriteLine("                                Review");
+                                        if (review.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", review.ASIN);
+                                        }
+                                        if (review.IsSetRating()) 
+                                        {
+                                            Console.WriteLine("                                    Rating");
+                                            Console.WriteLine("                                        {0}", review.Rating);
+                                        }
+                                        if (review.IsSetHelpfulVotes()) 
+                                        {
+                                            Console.WriteLine("                                    HelpfulVotes");
+                                            Console.WriteLine("                                        {0}", review.HelpfulVotes);
+                                        }
+                                        if (review.IsSetCustomerId()) 
+                                        {
+                                            Console.WriteLine("                                    CustomerId");
+                                            Console.WriteLine("                                        {0}", review.CustomerId);
+                                        }
+                                        if (review.IsSetReviewer()) 
+                                        {
+                                            Console.WriteLine("                                    Reviewer");
+                                            Reviewer  reviewer = review.Reviewer;
+                                            if (reviewer.IsSetCustomerId()) 
+                                            {
+                                                Console.WriteLine("                                        CustomerId");
+                                                Console.WriteLine("                                            {0}", reviewer.CustomerId);
+                                            }
+                                            if (reviewer.IsSetName()) 
+                                            {
+                                                Console.WriteLine("                                        Name");
+                                                Console.WriteLine("                                            {0}", reviewer.Name);
+                                            }
+                                            if (reviewer.IsSetNickname()) 
+                                            {
+                                                Console.WriteLine("                                        Nickname");
+                                                Console.WriteLine("                                            {0}", reviewer.Nickname);
+                                            }
+                                            if (reviewer.IsSetLocation()) 
+                                            {
+                                                Console.WriteLine("                                        Location");
+                                                Console.WriteLine("                                            {0}", reviewer.Location);
+                                            }
+                                        } 
+                                        if (review.IsSetTotalVotes()) 
+                                        {
+                                            Console.WriteLine("                                    TotalVotes");
+                                            Console.WriteLine("                                        {0}", review.TotalVotes);
+                                        }
+                                        if (review.IsSetDate()) 
+                                        {
+                                            Console.WriteLine("                                    Date");
+                                            Console.WriteLine("                                        {0}", review.Date);
+                                        }
+                                        if (review.IsSetSummary()) 
+                                        {
+                                            Console.WriteLine("                                    Summary");
+                                            Console.WriteLine("                                        {0}", review.Summary);
+                                        }
+                                        if (review.IsSetContent()) 
+                                        {
+                                            Console.WriteLine("                                    Content");
+                                            Console.WriteLine("                                        {0}", review.Content);
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetEditorialReviews()) 
+                                {
+                                    Console.WriteLine("                            EditorialReviews");
+                                    EditorialReviews  editorialReviews = item.EditorialReviews;
+                                    List<EditorialReview> editorialReviewList = editorialReviews.EditorialReview;
+                                    foreach (EditorialReview editorialReview in editorialReviewList) 
+                                    {
+                                        Console.WriteLine("                                EditorialReview");
+                                        if (editorialReview.IsSetSource()) 
+                                        {
+                                            Console.WriteLine("                                    Source");
+                                            Console.WriteLine("                                        {0}", editorialReview.Source);
+                                        }
+                                        if (editorialReview.IsSetContent()) 
+                                        {
+                                            Console.WriteLine("                                    Content");
+                                            Console.WriteLine("                                        {0}", editorialReview.Content);
+                                        }
+                                        if (editorialReview.IsSetIsLinkSuppressed()) 
+                                        {
+                                            Console.WriteLine("                                    IsLinkSuppressed");
+                                            Console.WriteLine("                                        {0}", editorialReview.IsLinkSuppressed);
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetSimilarProducts()) 
+                                {
+                                    Console.WriteLine("                            SimilarProducts");
+                                    SimilarProducts  similarProducts = item.SimilarProducts;
+                                    List<SimilarProduct> similarProductList = similarProducts.SimilarProduct;
+                                    foreach (SimilarProduct similarProduct in similarProductList) 
+                                    {
+                                        Console.WriteLine("                                SimilarProduct");
+                                        if (similarProduct.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", similarProduct.ASIN);
+                                        }
+                                        if (similarProduct.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", similarProduct.Title);
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetAccessories()) 
+                                {
+                                    Console.WriteLine("                            Accessories");
+                                    Accessories  accessories = item.Accessories;
+                                    List<Accessory> accessoryList = accessories.Accessory;
+                                    foreach (Accessory accessory in accessoryList) 
+                                    {
+                                        Console.WriteLine("                                Accessory");
+                                        if (accessory.IsSetASIN()) 
+                                        {
+                                            Console.WriteLine("                                    ASIN");
+                                            Console.WriteLine("                                        {0}", accessory.ASIN);
+                                        }
+                                        if (accessory.IsSetTitle()) 
+                                        {
+                                            Console.WriteLine("                                    Title");
+                                            Console.WriteLine("                                        {0}", accessory.Title);
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetTracks()) 
+                                {
+                                    Console.WriteLine("                            Tracks");
+                                    Tracks  tracks = item.Tracks;
+                                    List<Disc> discList = tracks.Disc;
+                                    foreach (Disc disc in discList) 
+                                    {
+                                        Console.WriteLine("                                Disc");
+                                        List<Track> trackList = disc.Track;
+                                        foreach (Track track in trackList) 
+                                        {
+                                            Console.WriteLine("                                    Track");
+                                        }
+                                    }
+                                } 
+                                if (item.IsSetBrowseNodes()) 
+                                {
+                                    Console.WriteLine("                            BrowseNodes");
+                                    BrowseNodes  browseNodes = item.BrowseNodes;
+                                    List<BrowseNode> browseNodeList = browseNodes.BrowseNode;
+                                    foreach (BrowseNode browseNode in browseNodeList) 
+                                    {
+                                        Console.WriteLine("                                BrowseNode");
+                                        if (browseNode.IsSetBrowseNodeId()) 
+                                        {
+                                            Console.WriteLine("                                    BrowseNodeId");
+                                            Console.WriteLine("                                        {0}", browseNode.BrowseNodeId);
+                                        }
+                                        if (browseNode.IsSetName()) 
+                                        {
+                                            Console.WriteLine("                                    Name");
+                                            Console.WriteLine("                                        {0}", browseNode.Name);
+                                        }
+                                        if (browseNode.IsSetIsCategoryRoot()) 
+                                        {
+                                            Console.WriteLine("                                    IsCategoryRoot");
+                                            Console.WriteLine("                                        {0}", browseNode.IsCategoryRoot);
+                                        }
+                                        if (browseNode.IsSetProperties()) 
+                                        {
+                                            Console.WriteLine("                                    Properties");
+                                            BrowseNodeProperties  properties = browseNode.Properties;
+                                            List<Property> propertyList = properties.Property;
+                                            foreach (Property property in propertyList) 
+                                            {
+                                                Console.WriteLine("                                        Property");
+                                                if (property.IsSetName()) 
+                                                {
+                                                    Console.WriteLine("                                            Name");
+                                                    Console.WriteLine("                                                {0}", property.Name);
+                                                }
+                                                if (property.IsSetValue()) 
+                                                {
+                                                    Console.WriteLine("                                            Value");
+                                                    Console.WriteLine("                                                {0}", property.Value);
+                                                }
+                                            }
+                                        } 
+                                        if (browseNode.IsSetChildren()) 
+                                        {
+                                            Console.WriteLine("                                    Children");
+                                            BrowseNodeChildren  children = browseNode.Children;
+                                        } 
+                                        if (browseNode.IsSetAncestors()) 
+                                        {
+                                            Console.WriteLine("                                    Ancestors");
+                                            BrowseNodeAncestors  ancestors = browseNode.Ancestors;
+                                        } 
+                                        if (browseNode.IsSetTopSellers()) 
+                                        {
+                                            Console.WriteLine("                                    TopSellers");
+                                            TopSellers  topSellers = browseNode.TopSellers;
+                                            List<TopSeller> topSellerList = topSellers.TopSeller;
+                                            foreach (TopSeller topSeller in topSellerList) 
+                                            {
+                                                Console.WriteLine("                                        TopSeller");
+                                                if (topSeller.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", topSeller.ASIN);
+                                                }
+                                                if (topSeller.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", topSeller.Title);
+                                                }
+                                            }
+                                        } 
+                                        if (browseNode.IsSetNewReleases()) 
+                                        {
+                                            Console.WriteLine("                                    NewReleases");
+                                            NewReleases  newReleases = browseNode.NewReleases;
+                                            List<NewRelease> newReleaseList = newReleases.NewRelease;
+                                            foreach (NewRelease newRelease in newReleaseList) 
+                                            {
+                                                Console.WriteLine("                                        NewRelease");
+                                                if (newRelease.IsSetASIN()) 
+                                                {
+                                                    Console.WriteLine("                                            ASIN");
+                                                    Console.WriteLine("                                                {0}", newRelease.ASIN);
+                                                }
+                                                if (newRelease.IsSetTitle()) 
+                                                {
+                                                    Console.WriteLine("                                            Title");
+                                                    Console.WriteLine("                                                {0}", newRelease.Title);
+                                                }
+                                            }
+                                        } 
+                                    }
+                                } 
+                                if (item.IsSetSearchInside()) 
+                                {
+                                    Console.WriteLine("                            SearchInside");
+                                    SearchInside  searchInside = item.SearchInside;
+                                    if (searchInside.IsSetTotalExcerpts()) 
+                                    {
+                                        Console.WriteLine("                                TotalExcerpts");
+                                        Console.WriteLine("                                    {0}", searchInside.TotalExcerpts);
+                                    }
+                                    if (searchInside.IsSetExcerpt()) 
+                                    {
+                                        Console.WriteLine("                                Excerpt");
+                                        SearchInsideExcerpt  excerpt = searchInside.Excerpt;
+                                        if (excerpt.IsSetChecksum()) 
+                                        {
+                                            Console.WriteLine("                                    Checksum");
+                                            Console.WriteLine("                                        {0}", excerpt.Checksum);
+                                        }
+                                        if (excerpt.IsSetPageType()) 
+                                        {
+                                            Console.WriteLine("                                    PageType");
+                                            Console.WriteLine("                                        {0}", excerpt.PageType);
+                                        }
+                                        if (excerpt.IsSetPageNumber()) 
+                                        {
+                                            Console.WriteLine("                                    PageNumber");
+                                            Console.WriteLine("                                        {0}", excerpt.PageNumber);
+                                        }
+                                        if (excerpt.IsSetSequenceNumber()) 
+                                        {
+                                            Console.WriteLine("                                    SequenceNumber");
+                                            Console.WriteLine("                                        {0}", excerpt.SequenceNumber);
+                                        }
+                                        if (excerpt.IsSetText()) 
+                                        {
+                                            Console.WriteLine("                                    Text");
+                                            Console.WriteLine("                                        {0}", excerpt.Text);
+                                        }
+                                    } 
+                                } 
+                                if (item.IsSetListmaniaLists()) 
+                                {
+                                    Console.WriteLine("                            ListmaniaLists");
+                                    ListmaniaLists  listmaniaLists = item.ListmaniaLists;
+                                    List<ListmaniaList> listmaniaListList = listmaniaLists.ListmaniaList;
+                                    foreach (ListmaniaList listmaniaList in listmaniaListList) 
+                                    {
+                                        Console.WriteLine("                                ListmaniaList");
+                                        if (listmaniaList.IsSetListId()) 
+                                        {
+                                            Console.WriteLine("                                    ListId");
+                                            Console.WriteLine("                                        {0}", listmaniaList.ListId);
+                                        }
+                                        if (listmaniaList.IsSetListName()) 
+                                        {
+                                            Console.WriteLine("                                    ListName");
+                                            Console.WriteLine("                                        {0}", listmaniaList.ListName);
+                                        }
+                                    }
+                                } 
+                            } 
+                        }
+                        List<TaggedListmaniaLists> taggedListmaniaListsList = tag.TaggedListmaniaLists;
+                        foreach (TaggedListmaniaLists taggedListmaniaLists in taggedListmaniaListsList) 
+                        {
+                            Console.WriteLine("                    TaggedListmaniaLists");
+                            if (taggedListmaniaLists.IsSetList()) 
+                            {
+                                Console.WriteLine("                        List");
+                                List  list = taggedListmaniaLists.List;
+                                if (list.IsSetListId()) 
+                                {
+                                    Console.WriteLine("                            ListId");
+                                    Console.WriteLine("                                {0}", list.ListId);
+                                }
+                                if (list.IsSetListURL()) 
+                                {
+                                    Console.WriteLine("                            ListURL");
+                                    Console.WriteLine("                                {0}", list.ListURL);
+                                }
+                                if (list.IsSetRegistryNumber()) 
+                                {
+                                    Console.WriteLine("                            RegistryNumber");
+                                    Console.WriteLine("                                {0}", list.RegistryNumber);
+                                }
+                                if (list.IsSetListName()) 
+                                {
+                                    Console.WriteLine("                            ListName");
+                                    Console.WriteLine("                                {0}", list.ListName);
+                                }
+                                if (list.IsSetListType()) 
+                                {
+                                    Console.WriteLine("                            ListType");
+                                    Console.WriteLine("                                {0}", list.ListType);
+                                }
+                                if (list.IsSetTotalItems()) 
+                                {
+                                    Console.WriteLine("                            TotalItems");
+                                    Console.WriteLine("                                {0}", list.TotalItems);
+                                }
+                                if (list.IsSetTotalPages()) 
+                                {
+                                    Console.WriteLine("                            TotalPages");
+                                    Console.WriteLine("                                {0}", list.TotalPages);
+                                }
+                                if (list.IsSetDateCreated()) 
+                                {
+                                    Console.WriteLine("                            DateCreated");
+                                    Console.WriteLine("                                {0}", list.DateCreated);
+                                }
+                                if (list.IsSetOccasionDate()) 
+                                {
+                                    Console.WriteLine("                            OccasionDate");
+                                    Console.WriteLine("                                {0}", list.OccasionDate);
+                                }
+                                if (list.IsSetCustomerName()) 
+                                {
+                                    Console.WriteLine("                            CustomerName");
+                                    Console.WriteLine("                                {0}", list.CustomerName);
+                                }
+                                if (list.IsSetPartnerName()) 
+                                {
+                                    Console.WriteLine("                            PartnerName");
+                                    Console.WriteLine("                                {0}", list.PartnerName);
+                                }
+                                if (list.IsSetAdditionalName()) 
+                                {
+                                    Console.WriteLine("                            AdditionalName");
+                                    Console.WriteLine("                                {0}", list.AdditionalName);
+                                }
+                                if (list.IsSetComment()) 
+                                {
+                                    Console.WriteLine("                            Comment");
+                                    Console.WriteLine("                                {0}", list.Comment);
+                                }
+                                if (list.IsSetImage()) 
+                                {
+                                    Console.WriteLine("                            Image");
+                                    Image  image = list.Image;
+                                    if (image.IsSetURL()) 
+                                    {
+                                        Console.WriteLine("                                URL");
+                                        Console.WriteLine("                                    {0}", image.URL);
+                                    }
+                                    if (image.IsSetHeight()) 
+                                    {
+                                        Console.WriteLine("                                Height");
+                                        DecimalWithUnits  height = image.Height;
+                                    } 
+                                    if (image.IsSetWidth()) 
+                                    {
+                                        Console.WriteLine("                                Width");
+                                        DecimalWithUnits  width = image.Width;
+                                    } 
+                                    if (image.IsSetIsVerified()) 
+                                    {
+                                        Console.WriteLine("                                IsVerified");
+                                        Console.WriteLine("                                    {0}", image.IsVerified);
+                                    }
+                                } 
+                                if (list.IsSetAverageRating()) 
+                                {
+                                    Console.WriteLine("                            AverageRating");
+                                    Console.WriteLine("                                {0}", list.AverageRating);
+                                }
+                                if (list.IsSetTotalVotes()) 
+                                {
+                                    Console.WriteLine("                            TotalVotes");
+                                    Console.WriteLine("                                {0}", list.TotalVotes);
+                                }
+                                if (list.IsSetTotalTimesRead()) 
+                                {
+                                    Console.WriteLine("                            TotalTimesRead");
+                                    Console.WriteLine("                                {0}", list.TotalTimesRead);
+                                }
+                            } 
+                        }
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+        }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TransactionLookupSample.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TransactionLookupSample.cs
new file mode 100644
index 0000000..67dc2f6
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.Samples/Amazon.ECS.Samples/TransactionLookupSample.cs
@@ -0,0 +1,401 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Samples
+{
+
+    /// <summary>
+    /// Transaction Lookup  Samples
+    /// </summary>
+    public class TransactionLookupSample
+    {
+    
+                                                                                     
+        /// <summary>
+        /// 
+        /// <p/>
+        /// The TransactionLookup operation returns information about up to ten purchases
+        /// that have already taken place. Transaction IDs are created whenever a purchase
+        /// request is made by a customer.
+        /// <p/>
+        /// For a specified transaction ID, TransactionLookup returns:
+        /// <ul>
+        /// <li>Price details</li>
+        /// <li>Sale date</li>
+        /// <li>Shipping details</li>
+        /// <li>Seller details</li>
+        /// <li>Item's condition </li>
+        /// </ul>
+        /// <p/>
+        /// For privacy reasons, this operation does not return information about the customer
+        /// who purchased the items.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>TransactionDetails</li>
+        /// </ul>
+        /// 
+        /// </summary>
+        /// <param name="service">Instance of AmazonECS service</param>
+        /// <param name="request">TransactionLookup request</param>
+        public static void InvokeTransactionLookup(AmazonECS service, params TransactionLookupRequest [] request) 
+        {
+            try 
+            {
+                TransactionLookupResponse response = service.TransactionLookup(request);
+                
+                
+                Console.WriteLine ("Service Response");
+                Console.WriteLine ("=============================================================================");
+                Console.WriteLine ();
+
+                Console.WriteLine("        TransactionLookupResponse");
+                if (response.IsSetOperationRequest()) 
+                {
+                    Console.WriteLine("            OperationRequest");
+                    OperationRequest  operationRequest = response.OperationRequest;
+                    if (operationRequest.IsSetHTTPHeaders()) 
+                    {
+                        Console.WriteLine("                HTTPHeaders");
+                        HTTPHeaders  HTTPHeaders = operationRequest.HTTPHeaders;
+                    } 
+                    if (operationRequest.IsSetRequestId()) 
+                    {
+                        Console.WriteLine("                RequestId");
+                        Console.WriteLine("                    {0}", operationRequest.RequestId);
+                    }
+                    if (operationRequest.IsSetArguments()) 
+                    {
+                        Console.WriteLine("                Arguments");
+                        Arguments  arguments = operationRequest.Arguments;
+                    } 
+                    if (operationRequest.IsSetRequestProcessingTime()) 
+                    {
+                        Console.WriteLine("                RequestProcessingTime");
+                        Console.WriteLine("                    {0}", operationRequest.RequestProcessingTime);
+                    }
+                } 
+                List<Transactions> transactionsList = response.Transactions;
+                foreach (Transactions transactions in transactionsList) 
+                {
+                    Console.WriteLine("            Transactions");
+                    if (transactions.IsSetTotalResults()) 
+                    {
+                        Console.WriteLine("                TotalResults");
+                        Console.WriteLine("                    {0}", transactions.TotalResults);
+                    }
+                    if (transactions.IsSetTotalPages()) 
+                    {
+                        Console.WriteLine("                TotalPages");
+                        Console.WriteLine("                    {0}", transactions.TotalPages);
+                    }
+                    List<Transaction> transactionList = transactions.Transaction;
+                    foreach (Transaction transaction in transactionList) 
+                    {
+                        Console.WriteLine("                Transaction");
+                        if (transaction.IsSetTransactionId()) 
+                        {
+                            Console.WriteLine("                    TransactionId");
+                            Console.WriteLine("                        {0}", transaction.TransactionId);
+                        }
+                        if (transaction.IsSetSellerId()) 
+                        {
+                            Console.WriteLine("                    SellerId");
+                            Console.WriteLine("                        {0}", transaction.SellerId);
+                        }
+                        if (transaction.IsSetCondition()) 
+                        {
+                            Console.WriteLine("                    Condition");
+                            Console.WriteLine("                        {0}", transaction.Condition);
+                        }
+                        if (transaction.IsSetTransactionDate()) 
+                        {
+                            Console.WriteLine("                    TransactionDate");
+                            Console.WriteLine("                        {0}", transaction.TransactionDate);
+                        }
+                        if (transaction.IsSetTransactionDateEpoch()) 
+                        {
+                            Console.WriteLine("                    TransactionDateEpoch");
+                            Console.WriteLine("                        {0}", transaction.TransactionDateEpoch);
+                        }
+                        if (transaction.IsSetSellerName()) 
+                        {
+                            Console.WriteLine("                    SellerName");
+                            Console.WriteLine("                        {0}", transaction.SellerName);
+                        }
+                        if (transaction.IsSetPayingCustomerId()) 
+                        {
+                            Console.WriteLine("                    PayingCustomerId");
+                            Console.WriteLine("                        {0}", transaction.PayingCustomerId);
+                        }
+                        if (transaction.IsSetOrderingCustomerId()) 
+                        {
+                            Console.WriteLine("                    OrderingCustomerId");
+                            Console.WriteLine("                        {0}", transaction.OrderingCustomerId);
+                        }
+                        if (transaction.IsSetTotals()) 
+                        {
+                            Console.WriteLine("                    Totals");
+                            TransactionTotals  totals = transaction.Totals;
+                            if (totals.IsSetTotal()) 
+                            {
+                                Console.WriteLine("                        Total");
+                                Price  total = totals.Total;
+                                if (total.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", total.Amount);
+                                }
+                                if (total.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", total.CurrencyCode);
+                                }
+                                if (total.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", total.FormattedPrice);
+                                }
+                            } 
+                            if (totals.IsSetSubtotal()) 
+                            {
+                                Console.WriteLine("                        Subtotal");
+                                Price  subtotal = totals.Subtotal;
+                                if (subtotal.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", subtotal.Amount);
+                                }
+                                if (subtotal.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", subtotal.CurrencyCode);
+                                }
+                                if (subtotal.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", subtotal.FormattedPrice);
+                                }
+                            } 
+                            if (totals.IsSetTax()) 
+                            {
+                                Console.WriteLine("                        Tax");
+                                Price  tax = totals.Tax;
+                                if (tax.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", tax.Amount);
+                                }
+                                if (tax.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", tax.CurrencyCode);
+                                }
+                                if (tax.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", tax.FormattedPrice);
+                                }
+                            } 
+                            if (totals.IsSetShippingCharge()) 
+                            {
+                                Console.WriteLine("                        ShippingCharge");
+                                Price  shippingCharge = totals.ShippingCharge;
+                                if (shippingCharge.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", shippingCharge.Amount);
+                                }
+                                if (shippingCharge.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", shippingCharge.CurrencyCode);
+                                }
+                                if (shippingCharge.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", shippingCharge.FormattedPrice);
+                                }
+                            } 
+                            if (totals.IsSetPromotion()) 
+                            {
+                                Console.WriteLine("                        Promotion");
+                                Price  promotion = totals.Promotion;
+                                if (promotion.IsSetAmount()) 
+                                {
+                                    Console.WriteLine("                            Amount");
+                                    Console.WriteLine("                                {0}", promotion.Amount);
+                                }
+                                if (promotion.IsSetCurrencyCode()) 
+                                {
+                                    Console.WriteLine("                            CurrencyCode");
+                                    Console.WriteLine("                                {0}", promotion.CurrencyCode);
+                                }
+                                if (promotion.IsSetFormattedPrice()) 
+                                {
+                                    Console.WriteLine("                            FormattedPrice");
+                                    Console.WriteLine("                                {0}", promotion.FormattedPrice);
+                                }
+                            } 
+                        } 
+                        if (transaction.IsSetTransactionItems()) 
+                        {
+                            Console.WriteLine("                    TransactionItems");
+                            TransactionItems  transactionItems = transaction.TransactionItems;
+                            List<TransactionItem> transactionItemList = transactionItems.TransactionItem;
+                            foreach (TransactionItem transactionItem in transactionItemList) 
+                            {
+                                Console.WriteLine("                        TransactionItem");
+                                if (transactionItem.IsSetTransactionItemId()) 
+                                {
+                                    Console.WriteLine("                            TransactionItemId");
+                                    Console.WriteLine("                                {0}", transactionItem.TransactionItemId);
+                                }
+                                if (transactionItem.IsSetQuantity()) 
+                                {
+                                    Console.WriteLine("                            Quantity");
+                                    Console.WriteLine("                                {0}", transactionItem.Quantity);
+                                }
+                                if (transactionItem.IsSetUnitPrice()) 
+                                {
+                                    Console.WriteLine("                            UnitPrice");
+                                    Price  unitPrice = transactionItem.UnitPrice;
+                                    if (unitPrice.IsSetAmount()) 
+                                    {
+                                        Console.WriteLine("                                Amount");
+                                        Console.WriteLine("                                    {0}", unitPrice.Amount);
+                                    }
+                                    if (unitPrice.IsSetCurrencyCode()) 
+                                    {
+                                        Console.WriteLine("                                CurrencyCode");
+                                        Console.WriteLine("                                    {0}", unitPrice.CurrencyCode);
+                                    }
+                                    if (unitPrice.IsSetFormattedPrice()) 
+                                    {
+                                        Console.WriteLine("                                FormattedPrice");
+                                        Console.WriteLine("                                    {0}", unitPrice.FormattedPrice);
+                                    }
+                                } 
+                                if (transactionItem.IsSetTotalPrice()) 
+                                {
+                                    Console.WriteLine("                            TotalPrice");
+                                    Price  totalPrice = transactionItem.TotalPrice;
+                                    if (totalPrice.IsSetAmount()) 
+                                    {
+                                        Console.WriteLine("                                Amount");
+                                        Console.WriteLine("                                    {0}", totalPrice.Amount);
+                                    }
+                                    if (totalPrice.IsSetCurrencyCode()) 
+                                    {
+                                        Console.WriteLine("                                CurrencyCode");
+                                        Console.WriteLine("                                    {0}", totalPrice.CurrencyCode);
+                                    }
+                                    if (totalPrice.IsSetFormattedPrice()) 
+                                    {
+                                        Console.WriteLine("                                FormattedPrice");
+                                        Console.WriteLine("                                    {0}", totalPrice.FormattedPrice);
+                                    }
+                                } 
+                                if (transactionItem.IsSetASIN()) 
+                                {
+                                    Console.WriteLine("                            ASIN");
+                                    Console.WriteLine("                                {0}", transactionItem.ASIN);
+                                }
+                                if (transactionItem.IsSetChildTransactionItems()) 
+                                {
+                                    Console.WriteLine("                            ChildTransactionItems");
+                                    ChildTransactionItems  childTransactionItems = transactionItem.ChildTransactionItems;
+                                } 
+                            }
+                        } 
+                        if (transaction.IsSetShipments()) 
+                        {
+                            Console.WriteLine("                    Shipments");
+                            TransactionShipments  shipments = transaction.Shipments;
+                            List<Shipment> shipmentList = shipments.Shipment;
+                            foreach (Shipment shipment in shipmentList) 
+                            {
+                                Console.WriteLine("                        Shipment");
+                                if (shipment.IsSetCondition()) 
+                                {
+                                    Console.WriteLine("                            Condition");
+                                    Console.WriteLine("                                {0}", shipment.Condition);
+                                }
+                                if (shipment.IsSetDeliveryMethod()) 
+                                {
+                                    Console.WriteLine("                            DeliveryMethod");
+                                    Console.WriteLine("                                {0}", shipment.DeliveryMethod);
+                                }
+                                if (shipment.IsSetShipmentItems()) 
+                                {
+                                    Console.WriteLine("                            ShipmentItems");
+                                    ShipmentItems  shipmentItems = shipment.ShipmentItems;
+                                    List<String> transactionItemIdList  =  shipmentItems.TransactionItemId;
+                                    foreach (String transactionItemId in transactionItemIdList) 
+                                    { 
+                                        Console.WriteLine("                                TransactionItemId");
+                                        Console.WriteLine("                                    {0}", transactionItemId);
+                                    }	
+                                } 
+                                if (shipment.IsSetPackages()) 
+                                {
+                                    Console.WriteLine("                            Packages");
+                                    ShipmentPackages  packages = shipment.Packages;
+                                    List<ShipmentPackage> packageList = packages.Package;
+                                    foreach (ShipmentPackage package in packageList) 
+                                    {
+                                        Console.WriteLine("                                Package");
+                                        if (package.IsSetTrackingNumber()) 
+                                        {
+                                            Console.WriteLine("                                    TrackingNumber");
+                                            Console.WriteLine("                                        {0}", package.TrackingNumber);
+                                        }
+                                        if (package.IsSetCarrierName()) 
+                                        {
+                                            Console.WriteLine("                                    CarrierName");
+                                            Console.WriteLine("                                        {0}", package.CarrierName);
+                                        }
+                                    }
+                                } 
+                            }
+                        } 
+                    }
+                }
+
+            } 
+            catch (AmazonECSException ex) 
+            {
+                Console.WriteLine("Caught Exception: " + ex.Message);
+                Console.WriteLine("Response Status Code: " + ex.StatusCode);
+                Console.WriteLine("Error Code: " + ex.ErrorCode);
+                Console.WriteLine("Request ID: " + ex.RequestId);
+                Console.WriteLine("XML: " + ex.XML);
+            }
+        }
+                    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.sln b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.sln
new file mode 100644
index 0000000..361a161
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS.sln
@@ -0,0 +1,33 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Amazon.ECS.Samples", "Amazon.ECS.Samples\Amazon.ECS.Samples.csproj", "{AE73B92A-6A4A-305B-9B01-C022ED9B6547}"
+	ProjectSection(ProjectDependencies) = postProject
+		{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54} = {E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Amazon.ECS", "Amazon.ECS\Amazon.ECS.csproj", "{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{AE73B92A-6A4A-305B-9B01-C022ED9B6547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AE73B92A-6A4A-305B-9B01-C022ED9B6547}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AE73B92A-6A4A-305B-9B01-C022ED9B6547}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AE73B92A-6A4A-305B-9B01-C022ED9B6547}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E7C5363A-CC4C-3631-8F8D-001E6E8DCD54}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
+
+
+
+
+
+
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS.csproj b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS.csproj
new file mode 100644
index 0000000..e3faf03
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS.csproj
@@ -0,0 +1,128 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Amazon.ECS</RootNamespace>
+    <AssemblyName>Amazon.ECS</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Web" />
+  </ItemGroup>
+  <ItemGroup>
+     <Compile Include="Amazon.ECS\*.cs" />
+     <Compile Include="Amazon.ECS\Model\*.cs" />
+     <Compile Include="Amazon.ECS\Query\*.cs" />
+     <Compile Include="Amazon.ECS\Mock\*.cs" />
+     <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Amazon.ECS\Mock\HelpResponse.xml">
+      <LogicalName>HelpResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\ItemSearchResponse.xml">
+      <LogicalName>ItemSearchResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\ItemLookupResponse.xml">
+      <LogicalName>ItemLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\BrowseNodeLookupResponse.xml">
+      <LogicalName>BrowseNodeLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\ListSearchResponse.xml">
+      <LogicalName>ListSearchResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\ListLookupResponse.xml">
+      <LogicalName>ListLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CustomerContentSearchResponse.xml">
+      <LogicalName>CustomerContentSearchResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CustomerContentLookupResponse.xml">
+      <LogicalName>CustomerContentLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\SimilarityLookupResponse.xml">
+      <LogicalName>SimilarityLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\SellerLookupResponse.xml">
+      <LogicalName>SellerLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CartGetResponse.xml">
+      <LogicalName>CartGetResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CartAddResponse.xml">
+      <LogicalName>CartAddResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CartCreateResponse.xml">
+      <LogicalName>CartCreateResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CartModifyResponse.xml">
+      <LogicalName>CartModifyResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\CartClearResponse.xml">
+      <LogicalName>CartClearResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\TransactionLookupResponse.xml">
+      <LogicalName>TransactionLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\SellerListingSearchResponse.xml">
+      <LogicalName>SellerListingSearchResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\SellerListingLookupResponse.xml">
+      <LogicalName>SellerListingLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+    <EmbeddedResource Include="Amazon.ECS\Mock\TagLookupResponse.xml">
+      <LogicalName>TagLookupResponse.xml</LogicalName>
+    </EmbeddedResource>
+ 
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECS.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECS.cs
new file mode 100644
index 0000000..c0843fa
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECS.cs
@@ -0,0 +1,866 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS
+{
+
+
+    /// <summary>
+    /// 
+    /// Amazon E-Commerce Service (ECS) is the best way to make money on the Internet.
+    /// Amazon has spent ten years and hundreds of millions of dollars developing a
+    /// world-class web service that millions of customers use every day. As a developer,
+    /// you can build ECS applications that leverage this robust, scalable, and reliable
+    /// technology. You get access to much of the data that is used by Amazon,
+    /// including the items for sale, customer reviews, seller reviews, as well as most
+    /// of the functionality that you see on www.amazon.com, such as finding items,
+    /// finding similar items, displaying customer reviews, and product promotions.
+    /// In short, ECS operations open the doors to Amazon's databases so that you can
+    /// take advantage of Amazon's sophisticated E-commerce data and functionality.
+    /// Build your own web store to sell Amazon items or your own items.
+    /// <p/>
+    /// Best of all, ECS is free. By signing up to become a ECS developer, you join the
+    /// tens of thousands of developers who are already realizing financial gains by
+    /// creating ECS-driven applications and web stores. In 2006, ECS developers sold well
+    /// over $600 million worth of items. Would you like a percentage of that revenue?
+    /// <p/>
+    /// E-commerce is the practice of conducting business over the Internet. This guide
+    /// explains in detail how you can use ECS operations to create storefronts in which
+    /// you enable Internet customers to search for your items, see pictures of them, find
+    /// related items, get customer reviews, and purchase items.
+    /// <p/>
+    /// With e-commerce, the barrier of distance between the shopper and the store goes away:
+    /// the local video store must compete with stores across the country. E-commerce levels
+    /// the playing field: the web site of an individual seller can appear as sophisticated
+    /// and intoxicating as that of a major retailer. ECS is your opportunity to enter the
+    /// world market where patronage is not limited by the size of your storefront, foot traffic
+    /// or locality. Welcome to the world of ECS E-commerce.
+    /// 
+    /// </summary>
+    public interface  AmazonECS {
+    
+                
+        /// <summary>
+        /// Help  Action
+        /// </summary>
+        /// <param name="request">Help  request</param>
+        /// <returns>Help  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The Help operation provides information about ECS operations and
+        /// response groups. For operations, Help lists required and optional
+        /// request parameters, as well as default and optional response groups the
+        /// operation can use. For response groups, Help lists the operations that can
+        /// use the response group as well as the response tags returned by the
+        /// response group in the XML response.
+        /// <p/>
+        /// The Help operation is not often used in customer applications. It can, however, be
+        /// used to help the developer in the following ways:
+        /// <p/>
+        /// <ul>
+        /// <li>Provide contextual help in an interactive development environment (IDE) for developerst</li>
+        /// <li>Automate documentation creation as part of a developer's toolkit. </li>
+        /// </ul>
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Help</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        HelpResponse Help(params HelpRequest [] request);
+
+                
+        /// <summary>
+        /// Item Search  Action
+        /// </summary>
+        /// <param name="request">Item Search  request</param>
+        /// <returns>Item Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ItemSearch operation returns items that satisfy the search
+        /// criteria, including one or more search indices
+        /// <p/>
+        /// ItemSearch returns up to ten search results at a time. When condition
+        /// equals "All," ItemSearch returns up to three offers per condition (if they exist),
+        /// for example, three new, three used, three refurbished, and three collectible items.
+        /// Or, for example, if there are no collectible or refurbished offers, ItemSearch
+        /// returns three new and three used offers.
+        /// <p/>
+        /// Because there are thousands of items in each search index, ItemSearch requires
+        /// that you specify the value for at least one parameter in addition to a search index.
+        /// The additional parameter value must reference items within the specified search index.
+        /// For example, you might specify a browse node (BrowseNode is an ItemSearch parameter),
+        /// Harry Potter Books, within the Books product category. You would not get results,
+        /// for example, if you specified the search index to be Automotive and the browse node
+        /// to be Harry Potter Books. In this case, the parameter value is not associated with
+        /// the search index value.
+        /// <p/>
+        /// The ItemPage parameter enables you to return a specified page of results. The maximum
+        /// ItemPage number that can be returned is 400. An error is returned if you try to access
+        /// higher numbered pages. If you do not include ItemPage in your request, the first page
+        /// will be returned by default. There can be up to ten items per page.
+        /// <p/>
+        /// ItemSearch is the operation that is used most often in requests. In general,
+        /// when trying to find an item for sale, you use this operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>SearchBins</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        ItemSearchResponse ItemSearch(params ItemSearchRequest [] request);
+
+                
+        /// <summary>
+        /// Item Lookup  Action
+        /// </summary>
+        /// <param name="request">Item Lookup  request</param>
+        /// <returns>Item Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given an Item identifier, the ItemLookup operation returns some or all
+        /// of the item attributes, depending on the response group specified in the request.
+        /// By default, ItemLookup returns an item's ASIN, DetailPageURL, Manufacturer,
+        /// ProductGroup, and Title of the item.
+        /// <p/>
+        /// ItemLookup supports many response groups, so you can retrieve many different
+        /// kinds of product information, called item attributes, including product reviews,
+        /// variations, similar products, pricing, availability, images of products, accessories,
+        /// and other information.
+        /// <p/>
+        /// To look up more than one item at a time, separate the item identifiers by commas.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        ItemLookupResponse ItemLookup(params ItemLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Browse Node Lookup  Action
+        /// </summary>
+        /// <param name="request">Browse Node Lookup  request</param>
+        /// <returns>Browse Node Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a browse node ID, BrowseNodeLookup returns the specified browse node's name, children, and ancestors.
+        /// The names and browse node IDs of the children and ancestor browse nodes are also returned.
+        /// BrowseNodeLookup enables you to traverse the browse node hierarchy to find a browse node.
+        /// As you traverse down the hierarchy, you refine your search and limit the number of items returned.
+        /// For example, you might traverse the following hierarchy: DVD Used DVDs Kids and Family,
+        /// to select out of all the DVDs offered by Amazon only those that are appropriate for family viewing.
+        /// Returning the items associated with Kids and Family produces a much more targeted result than a search
+        /// based at the level of Used DVDs.
+        /// <p/>
+        /// Alternatively, by traversing up the browse node tree, you can determine the root category of an item.
+        /// You might do that, for example, to return the top seller of the root product category using the
+        /// TopSeller response group in an ItemSearch request.
+        /// <p/>
+        /// You can use BrowseNodeLookup iteratively to navigate through the browse node hierarchy to
+        /// reach the node that most appropriately suits your search. Then you can use the browse node ID in
+        /// an ItemSearch request. This response would be far more targeted than, for example,
+        /// searching through all of the browse nodes in a search index.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>BrowseNodeInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        BrowseNodeLookupResponse BrowseNodeLookup(params BrowseNodeLookupRequest [] request);
+
+                
+        /// <summary>
+        /// List Search  Action
+        /// </summary>
+        /// <param name="request">List Search  request</param>
+        /// <returns>List Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a customer name or Email address, the ListSearch operation
+        /// returns the associated list ID(s) but not the list items. To find those,
+        /// use the list ID returned by ListSearch with  ListLookup  .
+        /// <p/>
+        /// Specifying a full name or just a first or last name in the request typically
+        /// returns multiple lists belonging to different people. Using Email as the
+        /// identifier produces more filtered results.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>ListMinimum</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        ListSearchResponse ListSearch(params ListSearchRequest [] request);
+
+                
+        /// <summary>
+        /// List Lookup  Action
+        /// </summary>
+        /// <param name="request">List Lookup  request</param>
+        /// <returns>List Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ListLookup operation returns, by default, summary information about a
+        /// list that you specify in the request. The summary information includes the:
+        /// <p/>
+        /// <ul>
+        /// <li>Creation date of the list</li>
+        /// <li>Name of the list's creator</li>
+        /// </ul>
+        /// <p/>
+        /// The operation returns up to ten sets of summary information per page.
+        /// <p/>
+        /// Lists are specified by list type and list ID, which can be found using ListSearch.
+        /// <p/>
+        /// You cannot lookup more than one list at a time in a single request.
+        /// You can, however, make a batch request to look for more than one list simultaneously.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListFull</li>
+        /// <li>ListItems</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Small</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        ListLookupResponse ListLookup(params ListLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Customer Content Search  Action
+        /// </summary>
+        /// <param name="request">Customer Content Search  request</param>
+        /// <returns>Customer Content Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer Email address or name, the CustomerContentSearch
+        /// operation returns matching customer IDs, names, nicknames, and residence
+        /// information (city, state, and country). In general, supplying an Email
+        /// address returns unique results whereas supplying a name more often
+        /// returns multiple results.
+        /// <p/>
+        /// Often you use CustomerContentSearch to find a customer ID that you can
+        /// use in the CustomerContentLookup operation, which returns more
+        /// extensive customer information.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CustomerContentSearchResponse CustomerContentSearch(params CustomerContentSearchRequest [] request);
+
+                
+        /// <summary>
+        /// Customer Content Lookup  Action
+        /// </summary>
+        /// <param name="request">Customer Content Lookup  request</param>
+        /// <returns>Customer Content Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer ID, the CustomerContentLookup operation
+        /// retrieves all of the information a customer has made public about
+        /// themselves on Amazon. Such information includes some or all of the following:
+        /// <p/>
+        /// <ul>
+        /// <li>AboutMe</li>
+        /// <li>Birthday</li>
+        /// <li>City, State and Country</li>
+        /// <li>Customer Reviews</li>
+        /// <li>Customer ID</li>
+        /// <li>Name</li>
+        /// <li>Nickname</li>
+        /// <li>Wedding Registry</li>
+        /// <li>WishList</li>
+        /// </ul>
+        /// <p/>
+        /// To find a customer ID, use the CustomerContentSearch operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// <li>CustomerReviews</li>
+        /// <li>CustomerLists</li>
+        /// <li>CustomerFull</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CustomerContentLookupResponse CustomerContentLookup(params CustomerContentLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Similarity Lookup  Action
+        /// </summary>
+        /// <param name="request">Similarity Lookup  request</param>
+        /// <returns>Similarity Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SimilarityLookup operation returns up to ten products per page that are
+        /// similar to one or more items specified in the request. This operation is
+        /// typically used to pique a customer's interest in buying something similar to what they've already ordered.
+        /// <p/>
+        /// If you specify more than one item, SimilarityLookup returns the intersection of similar
+        /// items each item would return separately. Alternatively, you can use the SimilarityType
+        /// parameter to return the union of items that are similar to any of the specified items.
+        /// A maximum of ten similar items are returned; the operation does not return additional
+        /// pages of similar items. if there are more than ten similar items, running the same
+        /// request can result in different answers because the ten that are included in the
+        /// response are picked randomly.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>Large</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        SimilarityLookupResponse SimilarityLookup(params SimilarityLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Seller Lookup  Action
+        /// </summary>
+        /// <param name="request">Seller Lookup  request</param>
+        /// <returns>Seller Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerLookup operation returns detailed information about sellers and,
+        /// in the US locale, merchants. To lookup a seller, you must use their seller ID.
+        /// The information returned includes the seller's name, location, average rating by
+        /// customers, and the first five customer feedback entries. SellerLookup will not,
+        /// however, return the seller's Email or business addresses.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Seller</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        SellerLookupResponse SellerLookup(params SellerLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Cart Get  Action
+        /// </summary>
+        /// <param name="request">Cart Get  request</param>
+        /// <returns>Cart Get  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartGet operation enables you to retrieve the IDs, quantities,
+        /// and prices of all of the items, including SavedForLater items in a
+        /// remote shopping cart.
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons,
+        /// such as availability, you should not keep a copy of a cart locally.
+        /// Instead, use CartGet to retrieve the items in a remote shopping cart.
+        /// <p/>
+        /// To retrieve the items in a cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned in the CartCreate operation.
+        /// A value similar to HMAC, URLEncodedHMAC, is also returned. This value is the
+        /// URL encoded version of the HMAC. This encoding is necessary because some
+        /// characters, such as + and /, cannot be included in a URL. Rather than
+        /// encoding the HMAC yourself, use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartGet does not work after the customer has used the PurchaseURL to either
+        /// purchase the items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartGet
+        /// requests must also include a value for AssociateTag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CartGetResponse CartGet(params CartGetRequest [] request);
+
+                
+        /// <summary>
+        /// Cart Add  Action
+        /// </summary>
+        /// <param name="request">Cart Add  request</param>
+        /// <returns>Cart Add  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartAdd operation enables you to add items to an existing remote shopping cart.
+        /// CartAdd can only be used to place a new item in a shopping cart. It cannot be used to increase
+        /// the quantity of an item already in the cart. If you would like to increase the quantity of
+        /// an item that is already in the cart, you must use the CartModify operation.
+        /// <p/>
+        /// You add an item to a cart by specifying the item's OfferListingId, or ASIN and ListItemId.
+        /// Once in a cart, an item can only be identified by its CartItemId. That is, an item in a cart
+        /// cannot be accessed by its ASIN or OfferListingId. CartItemId is returned by CartCreate, CartGet, and CartAdd.
+        /// <p/>
+        /// To add items to a cart, you must specify the cart using the CartId and HMAC values, which are
+        /// returned by the CartCreate operation.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartAdd requests must
+        /// also include a value for Associate Tag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CartAddResponse CartAdd(params CartAddRequest [] request);
+
+                
+        /// <summary>
+        /// Cart Create  Action
+        /// </summary>
+        /// <param name="request">Cart Create  request</param>
+        /// <returns>Cart Create  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartCreate operation enables you to create a remote shopping cart.
+        /// A shopping cart is the metaphor used by most e-commerce solutions. It is a
+        /// temporary data storage structure that resides on Amazon servers. The
+        /// structure contains the items a customer wants to buy. In ECS, the shopping
+        /// cart is considered remote because it is hosted by Amazon servers.
+        /// In this way, the cart is remote to the vendor's web site where the customer
+        /// views and selects the items they want to purchase.
+        /// <p/>
+        /// Once you add an item to a cart by specifying the item's ListItemId and ASIN,
+        /// or OfferListing ID, the item is assigned a CartItemId and accessible only
+        /// by that value. That is, in subsequent requests, an item in a cart cannot
+        /// be accessed by its ListItemId and ASIN, or OfferListingId. CartItemId is
+        /// returned by CartCreate , CartGet , and CartAdd .
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons, such as
+        /// item availability, you should not keep a copy of a cart locally. Instead,
+        /// use the other cart operations to modify the cart contents. For example,
+        /// to retrieve contents of the cart, which are represented by CartItemIds,
+        /// use CartGet .
+        /// <p/>
+        /// Available products are added as cart items. Unavailable items, for example,
+        /// items out of stock, discontinued, or future releases, are added as SaveForLaterItems.
+        /// No error is generated. The Amazon database changes regularly. You may find a product
+        /// with an offer listing ID but by the time the item is added to the cart the product
+        /// is no longer available. The checkout page in the Order Pipeline clearly lists
+        /// items that are available and those that are SaveForLaterItems.
+        /// <p/>
+        /// It is impossible to create an empty shopping cart. You have to add at least one
+        /// item to a shopping cart using a single CartCreate request. You can add specific
+        /// quantities (up to 999) of each item.
+        /// <p/>
+        /// CartCreate can be used only once in the life cycle of a cart. To modify the
+        /// contents of the cart, use one of the other cart operations.
+        /// <p/>
+        /// Carts cannot be deleted. They expire automatically after being unused for 7 days.
+        /// The lifespan of a cart restarts, however, every time a cart is modified.
+        /// In this way, a cart can last for more than 7 days. If, for example, on day 6,
+        /// the customer modifies a cart, the 7 day countdown starts over.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CartCreateResponse CartCreate(params CartCreateRequest [] request);
+
+                
+        /// <summary>
+        /// Cart Modify  Action
+        /// </summary>
+        /// <param name="request">Cart Modify  request</param>
+        /// <returns>Cart Modify  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartModify operation enables you to:
+        /// <p/>
+        /// <ul>
+        /// <li>Change the quantity of items that are already in a remote shopping cart.</li>
+        /// <li>Move items from the active area of a cart to the SaveForLater area or the reverse</li>
+        /// <li>Change the MergeCart setting. </li>
+        /// </ul>
+        /// <p/>
+        /// To modify the number of items in a cart, you must specify the
+        /// cart using the CartId and HMAC values that are returned in the
+        /// CartCreate operation. A value similar to HMAC, URLEncodedHMAC,
+        /// is also returned. This value is the URL encoded version of the HMAC.
+        /// This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself,
+        /// use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// You can use CartModify to modify the number of items in a remote shopping
+        /// cart by setting the value of the Quantity parameter appropriately. You can
+        /// eliminate an item from a cart by setting the value of the Quantity parameter
+        /// to zero. Or, you can double the number of a particular item in the cart by
+        /// doubling its Quantity . You cannot, however, use CartModify to add new items to a cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all
+        /// CartModify requests must also include a value for Associate Tag
+        /// otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CartModifyResponse CartModify(params CartModifyRequest [] request);
+
+                
+        /// <summary>
+        /// Cart Clear  Action
+        /// </summary>
+        /// <param name="request">Cart Clear  request</param>
+        /// <returns>Cart Clear  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartClear operation enables you to remove all of the items in a remote shopping cart, including
+        /// SavedForLater items. To remove only some of the items in a cart or to reduce the quantity
+        /// of one or more items, use  CartModify  .
+        /// <p/>
+        /// To delete all of the items from a remote shopping cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned by the CartCreate operation. A value similar
+        /// to the HMAC, URLEncodedHMAC, is also returned. This value is the URL encoded version
+        /// of the HMAC. This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself, use the
+        /// URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartClear does not work after the customer has used the PurchaseURL to either purchase the
+        /// items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// Carts exist even though they have been emptied. The lifespan of a cart is 7 days since the
+        /// last time it was acted upon. For example, if a cart created 6 days ago is modified,
+        /// the cart lifespan is reset to 7 days.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        CartClearResponse CartClear(params CartClearRequest [] request);
+
+                
+        /// <summary>
+        /// Transaction Lookup  Action
+        /// </summary>
+        /// <param name="request">Transaction Lookup  request</param>
+        /// <returns>Transaction Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TransactionLookup operation returns information about up to ten purchases
+        /// that have already taken place. Transaction IDs are created whenever a purchase
+        /// request is made by a customer.
+        /// <p/>
+        /// For a specified transaction ID, TransactionLookup returns:
+        /// <ul>
+        /// <li>Price details</li>
+        /// <li>Sale date</li>
+        /// <li>Shipping details</li>
+        /// <li>Seller details</li>
+        /// <li>Item's condition </li>
+        /// </ul>
+        /// <p/>
+        /// For privacy reasons, this operation does not return information about the customer
+        /// who purchased the items.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>TransactionDetails</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        TransactionLookupResponse TransactionLookup(params TransactionLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Seller Listing Search  Action
+        /// </summary>
+        /// <param name="request">Seller Listing Search  request</param>
+        /// <returns>Seller Listing Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingSearch operation enables you to search for items offered
+        /// by specific sellers. You cannot use SellerListingSearch to look up items sold by merchants.
+        /// To look up an item sold by a merchant, use  ItemLookup   or  ItemSearch
+        /// along with the MerchantId parameter.
+        /// <p/>
+        /// SellerListingSearch returns the listing ID or exchange ID of an item.
+        /// Typically, you use those values with SellerListingLookup to find out more about those items.
+        /// <p/>
+        /// Each SellerListingSearch request returns up to ten items. By default, the first ten
+        /// items are returned. You can use the ListingPage parameter to retrieve additional pages
+        /// of (up to) ten listings.
+        /// <p/>
+        /// To use ECS, sellers must have less than 100,000 items for sale. Sellers that have more
+        /// items for sale should use, instead of ECS, other seller APIs, including the Amazon
+        /// Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        SellerListingSearchResponse SellerListingSearch(params SellerListingSearchRequest [] request);
+
+                
+        /// <summary>
+        /// Seller Listing Lookup  Action
+        /// </summary>
+        /// <param name="request">Seller Listing Lookup  request</param>
+        /// <returns>Seller Listing Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingLookup operation enables you to return information
+        /// about a seller's listings, including product descriptions, availability,
+        /// condition, and quantity available. The response also includes the seller's nickname.
+        /// Each request requires a seller ID.
+        /// <p/>
+        /// You can also find a seller's items using ItemLookup. There are, however,
+        /// some reasons why it is better to use SellerListingLookup:
+        /// <p/>
+        /// <ul>
+        /// <li>SellerListingLookup enables you to search by seller ID.</li>
+        /// <li>SellerListingLookup returns much more information than ItemLookup.</li>
+        /// </ul>
+        /// <p/>
+        /// This operation only works with sellers who have less than 100,000 items for sale.
+        /// Sellers that have more items for sale should use, instead of ECS, other APIs,
+        /// including the Amazon Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        SellerListingLookupResponse SellerListingLookup(params SellerListingLookupRequest [] request);
+
+                
+        /// <summary>
+        /// Tag Lookup  Action
+        /// </summary>
+        /// <param name="request">Tag Lookup  request</param>
+        /// <returns>Tag Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TagLookup operation returns entities based on specifying one to five tags.
+        /// A tag is a descriptive word that a customer uses to label entities on Amazon's retail website.
+        /// Entities can be items for sale, Listmania lists, guides, and so forth. For example, a customer might tag a
+        /// given entity with the phrase, "BestCookbook." For more information, see Tags.
+        /// <p/>
+        /// In the tag-related response groups, Tags and TagSummary specify the amount of informtion returned. The
+        /// other tag-related response groups, TaggedGuides, TaggedItems, and Tagged listmaniaLists,
+        /// specify the kind of entity tagged.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>AlternateVersions</li>
+        /// <li>BrowseNodes</li>
+        /// <li>Collections</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>OfferListings</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>ShippingCharges</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>Tracks</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        TagLookupResponse TagLookup(params TagLookupRequest [] request);
+
+    }
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSConfig.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSConfig.cs
new file mode 100644
index 0000000..e342a17
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSConfig.cs
@@ -0,0 +1,195 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Text;
+
+namespace Amazon.ECS
+{
+
+    /// <summary>
+    /// Configuration for accessing Amazon ECS  service
+    /// </summary>
+    public class AmazonECSConfig 
+    {
+    
+        private String serviceVersion = "2007-07-16";
+        private String serviceURL = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService";;
+        private String userAgent = "Amazon ECS CSharp Library";
+        private String proxyHost = null;
+        private int proxyPort = -1;
+        private Encoding inputEncoding = Encoding.GetEncoding("ISO-8859-1");
+
+    
+        /// <summary>
+        /// Gets Service Version
+        /// </summary>
+        public String ServiceVersion
+        {
+            get { return this.serviceVersion ; }
+        }
+  
+        /// <summary>
+        /// Gets and sets of the InputEncoding property.
+        /// </summary>
+        public Encoding InputEncoding
+        {
+            get { return this.inputEncoding; }
+            set { this.inputEncoding = value; }
+        }
+
+        /// <summary>
+        /// Sets InputEncoding property
+        /// </summary>
+        /// <param name="inputEncoding">InputEncoding property</param>
+        /// <returns>this instance</returns>
+        public AmazonECSConfig WithInputEncoding(Encoding inputEncoding)
+        {
+            this.inputEncoding = inputEncoding;
+            return this;
+        }
+
+        /// <summary>
+        /// Checks if InputEncoding property is set
+        /// </summary>
+        /// <returns>true if InputEncoding property is set</returns>
+        public Boolean IsSetInputEncoding()
+        {
+            return this.inputEncoding != null;
+        }
+
+        /// <summary>
+        /// Gets and sets of the UserAgent property.
+        /// </summary>
+        public String UserAgent
+        {
+            get { return this.userAgent ; }
+            set { this.userAgent = value; }
+        }
+
+        /// <summary>
+        /// Sets the UserAgent property
+        /// </summary>
+        /// <param name="userAgent">UserAgent property</param>
+        /// <returns>this instance</returns>
+        public AmazonECSConfig WithUserAgent(String userAgent)
+        {
+            this.userAgent = userAgent;
+            return this;
+        }
+
+        /// <summary>
+        /// Checks if UserAgent property is set
+        /// </summary>
+        /// <returns>true if UserAgent property is set</returns>
+        public Boolean IsSetUserAgent()
+        {
+            return this.userAgent != null;
+        }
+
+        /// <summary>
+        /// Gets and sets of the ServiceURL property.
+        /// </summary>
+        public String ServiceURL
+        {
+            get { return this.serviceURL ; }
+            set { this.serviceURL = value; }
+        }
+
+        /// <summary>
+        /// Sets the ServiceURL property
+        /// </summary>
+        /// <param name="serviceURL">ServiceURL property</param>
+        /// <returns>this instance</returns>
+        public AmazonECSConfig WithServiceURL(String serviceURL)
+        {
+            this.serviceURL = serviceURL;
+            return this;
+        }
+
+        /// <summary>
+        /// Checks if ServiceURL property is set
+        /// </summary>
+        /// <returns>true if ServiceURL property is set</returns>
+        public Boolean IsSetServiceURL()
+        {
+            return this.serviceURL != null;
+        }
+
+        /// <summary>
+        /// Gets and sets of the ProxyHost property.
+        /// </summary>
+        public String ProxyHost
+        {
+            get { return this.proxyHost; }
+            set { this.proxyHost = value; }
+        }
+
+        /// <summary>
+        /// Sets the ProxyHost property
+        /// </summary>
+        /// <param name="proxyHost">ProxyHost property</param>
+        /// <returns>this instance</returns>
+        public AmazonECSConfig WithProxyHost(String proxyHost)
+        {
+            this.proxyHost = proxyHost;
+            return this;
+        }
+
+        /// <summary>
+        /// Checks if ProxyHost property is set
+        /// </summary>
+        /// <returns>true if ProxyHost property is set</returns>
+        public Boolean IsSetProxyHost()
+        {
+            return this.proxyHost != null;
+        }
+
+        /// <summary>
+        /// Gets and sets of the ProxyPort property.
+        /// </summary>
+        public int ProxyPort
+        {
+            get { return this.proxyPort; }
+            set { this.proxyPort = value; }
+        }
+
+        /// <summary>
+        /// Sets the ProxyPort property
+        /// </summary>
+        /// <param name="proxyPort">ProxyPort property</param>
+        /// <returns>this instance</returns>
+        public AmazonECSConfig WithProxyPort(int proxyPort)
+        {
+            this.proxyPort = proxyPort;
+            return this;
+        }
+
+        /// <summary>
+        /// Checks if ProxyPort property is set
+        /// </summary>
+        /// <returns>true if ProxyPort property is set</returns>
+        public Boolean IsSetProxyPort()
+        {
+            return this.proxyPort != -1;
+        }
+    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSException.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSException.cs
new file mode 100644
index 0000000..d3db1ce
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSException.cs
@@ -0,0 +1,150 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Net;
+using Amazon.ECS;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS
+{
+    /// <summary>
+    /// Amazon ECS  Exception provides details of errors 
+    /// returned by Amazon ECS  service
+    /// </summary>
+    public class AmazonECSException : Exception 
+    {
+    
+        private String message = null;
+        private HttpStatusCode statusCode = default(HttpStatusCode);
+        private String errorCode = null;
+        private String requestId = null;
+        private String xml = null;
+    
+
+        /// <summary>
+        /// Constructs AmazonECSException with message
+        /// </summary>
+        /// <param name="message">Overview of error</param>
+        public AmazonECSException(String message) {
+            this.message = message;
+        }
+    
+        /// <summary>
+        /// Constructs AmazonECSException with message and status code
+        /// </summary>
+        /// <param name="message">Overview of error</param>
+        /// <param name="statusCode">HTTP status code for error response</param>
+        public AmazonECSException(String message, HttpStatusCode statusCode) : this (message)
+        {
+            this.statusCode = statusCode;
+        }
+    
+
+        /// <summary>
+        /// Constructs AmazonECSException with wrapped exception
+        /// </summary>
+        /// <param name="t">Wrapped exception</param>
+        public AmazonECSException(Exception t) : this (t.Message, t) {
+
+        }
+    
+        /// <summary>
+        /// Constructs AmazonECSException with message and wrapped exception
+        /// </summary>
+        /// <param name="message">Overview of error</param>
+        /// <param name="t">Wrapped exception</param>
+        public AmazonECSException(String message, Exception t) : base (message, t) {
+            this.message = message;
+            if (t is AmazonECSException)
+            {
+                AmazonECSException ex = (AmazonECSException)t;
+                this.statusCode = ex.StatusCode;
+                this.errorCode = ex.ErrorCode;
+                this.requestId = ex.RequestId;
+                this.xml = ex.XML;
+            }
+        }
+    
+
+        /// <summary>
+        /// Constructs AmazonECSException with information available from service
+        /// </summary>
+        /// <param name="message">Overview of error</param>
+        /// <param name="statusCode">HTTP status code for error response</param>
+        /// <param name="errorCode">Error Code returned by the service</param>
+        /// <param name="requestId">Request ID returned by the service</param>
+        /// <param name="xml">Compete xml found in response</param>
+        public AmazonECSException(String message, HttpStatusCode statusCode, String errorCode, String requestId, String xml) : this (message, statusCode)
+        {
+            this.errorCode = errorCode;
+            this.requestId = requestId;
+            this.xml = xml;
+        }
+    
+        /// <summary>
+        /// Gets and sets of the ErrorCode property.
+        /// </summary>
+        public String ErrorCode
+        {
+            get { return this.errorCode; }
+        }
+
+
+        /// <summary>
+        /// Gets error message
+        /// </summary>
+        public override String Message
+        {
+            get { return this.message; }
+        }
+    
+ 
+        /// <summary>
+        /// Gets status code returned by the service if available. If status
+        /// code is set to -1, it means that status code was unavailable at the
+        /// time exception was thrown
+        /// </summary>
+        public HttpStatusCode StatusCode
+        {
+            get { return this.statusCode; }
+        }
+
+        /// <summary>
+        /// Gets XML returned by the service if available.
+        /// </summary>
+        public String XML
+        {
+            get { return this.xml; }
+        }
+ 
+        /// <summary>
+        /// Gets Request ID returned by the service if available.
+        /// </summary>
+        public String RequestId
+        {
+            get { return this.requestId; }
+        }
+    
+    }
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSLocale.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSLocale.cs
new file mode 100644
index 0000000..510948c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/AmazonECSLocale.cs
@@ -0,0 +1,110 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS
+{
+
+    public sealed class AmazonECSLocale
+    {
+        private AmazonECSConfig config;
+        private static Encoding LATIN1 = Encoding.GetEncoding("ISO-8859-1");
+        private static Encoding UTF8 = Encoding.UTF8;
+
+        private AmazonECSLocale(AmazonECSConfig config)
+        {
+            this.config = config;
+        }
+
+        public static AmazonECSLocale US
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                            .WithServiceURL("http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService";)
+                            .WithInputEncoding(LATIN1));
+            }
+        }
+
+        public static AmazonECSLocale UK
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                            .WithServiceURL("http://ecs.amazonaws.co.uk/onca/xml?Service=AWSECommerceService";)
+                            .WithInputEncoding(LATIN1));
+
+            }
+        }
+
+        public static AmazonECSLocale DE
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                            .WithServiceURL("http://ecs.amazonaws.de/onca/xml?Service=AWSECommerceService";)
+                            .WithInputEncoding(LATIN1));
+            }
+        }
+
+
+        public static AmazonECSLocale FR
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                            .WithServiceURL("http://ecs.amazonaws.fr/onca/xml?Service=AWSECommerceService";)
+                            .WithInputEncoding(LATIN1));
+            }
+        }
+
+        public static AmazonECSLocale JP
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                       .WithServiceURL("http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService";)
+                       .WithInputEncoding(UTF8));
+            }
+        }
+
+        public static AmazonECSLocale CA
+        {
+            get
+            {
+                return new AmazonECSLocale(new AmazonECSConfig()
+                        .WithServiceURL("http://ecs.amazonaws.ca/onca/xml?Service=AWSECommerceService";)
+                        .WithInputEncoding(LATIN1));
+            }
+        }
+
+        public AmazonECSConfig Config
+        {
+            get { return this.config; }
+        }
+    }
+
+}
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/AmazonECSMock.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/AmazonECSMock.cs
new file mode 100644
index 0000000..7ecea40
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/AmazonECSMock.cs
@@ -0,0 +1,895 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.IO;
+using System.Reflection;
+using System.Xml.Serialization;
+using Amazon.ECS.Model;
+
+namespace Amazon.ECS.Mock
+{
+
+    /// <summary>
+    /// AmazonECSMock is the implementation of AmazonECS based
+    /// on the pre-populated set of XML files that serve local data. It simulates 
+    /// responses from Amazon ECS service.
+    /// </summary>
+    /// <remarks>
+    /// Use this to test your application without making a call to 
+    /// Amazon ECS 
+    /// 
+    /// Note, current Mock Service implementation does not valiadate requests
+    /// </remarks>
+    public  class AmazonECSMock : AmazonECS {
+    
+
+        // Public API ------------------------------------------------------------//
+    
+        
+        /// <summary>
+        /// Help  Action
+        /// </summary>
+        /// <param name="action">Help  request</param>
+        /// <returns>Help  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The Help operation provides information about ECS operations and
+        /// response groups. For operations, Help lists required and optional
+        /// request parameters, as well as default and optional response groups the
+        /// operation can use. For response groups, Help lists the operations that can
+        /// use the response group as well as the response tags returned by the
+        /// response group in the XML response.
+        /// <p/>
+        /// The Help operation is not often used in customer applications. It can, however, be
+        /// used to help the developer in the following ways:
+        /// <p/>
+        /// <ul>
+        /// <li>Provide contextual help in an interactive development environment (IDE) for developerst</li>
+        /// <li>Automate documentation creation as part of a developer's toolkit. </li>
+        /// </ul>
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Help</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public HelpResponse Help(params HelpRequest [] request) 
+        {
+            return Invoke<HelpResponse>("HelpResponse.xml");
+        }
+        
+        /// <summary>
+        /// Item Search  Action
+        /// </summary>
+        /// <param name="action">Item Search  request</param>
+        /// <returns>Item Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ItemSearch operation returns items that satisfy the search
+        /// criteria, including one or more search indices
+        /// <p/>
+        /// ItemSearch returns up to ten search results at a time. When condition
+        /// equals "All," ItemSearch returns up to three offers per condition (if they exist),
+        /// for example, three new, three used, three refurbished, and three collectible items.
+        /// Or, for example, if there are no collectible or refurbished offers, ItemSearch
+        /// returns three new and three used offers.
+        /// <p/>
+        /// Because there are thousands of items in each search index, ItemSearch requires
+        /// that you specify the value for at least one parameter in addition to a search index.
+        /// The additional parameter value must reference items within the specified search index.
+        /// For example, you might specify a browse node (BrowseNode is an ItemSearch parameter),
+        /// Harry Potter Books, within the Books product category. You would not get results,
+        /// for example, if you specified the search index to be Automotive and the browse node
+        /// to be Harry Potter Books. In this case, the parameter value is not associated with
+        /// the search index value.
+        /// <p/>
+        /// The ItemPage parameter enables you to return a specified page of results. The maximum
+        /// ItemPage number that can be returned is 400. An error is returned if you try to access
+        /// higher numbered pages. If you do not include ItemPage in your request, the first page
+        /// will be returned by default. There can be up to ten items per page.
+        /// <p/>
+        /// ItemSearch is the operation that is used most often in requests. In general,
+        /// when trying to find an item for sale, you use this operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>SearchBins</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ItemSearchResponse ItemSearch(params ItemSearchRequest [] request) 
+        {
+            return Invoke<ItemSearchResponse>("ItemSearchResponse.xml");
+        }
+        
+        /// <summary>
+        /// Item Lookup  Action
+        /// </summary>
+        /// <param name="action">Item Lookup  request</param>
+        /// <returns>Item Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given an Item identifier, the ItemLookup operation returns some or all
+        /// of the item attributes, depending on the response group specified in the request.
+        /// By default, ItemLookup returns an item's ASIN, DetailPageURL, Manufacturer,
+        /// ProductGroup, and Title of the item.
+        /// <p/>
+        /// ItemLookup supports many response groups, so you can retrieve many different
+        /// kinds of product information, called item attributes, including product reviews,
+        /// variations, similar products, pricing, availability, images of products, accessories,
+        /// and other information.
+        /// <p/>
+        /// To look up more than one item at a time, separate the item identifiers by commas.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ItemLookupResponse ItemLookup(params ItemLookupRequest [] request) 
+        {
+            return Invoke<ItemLookupResponse>("ItemLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Browse Node Lookup  Action
+        /// </summary>
+        /// <param name="action">Browse Node Lookup  request</param>
+        /// <returns>Browse Node Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a browse node ID, BrowseNodeLookup returns the specified browse node's name, children, and ancestors.
+        /// The names and browse node IDs of the children and ancestor browse nodes are also returned.
+        /// BrowseNodeLookup enables you to traverse the browse node hierarchy to find a browse node.
+        /// As you traverse down the hierarchy, you refine your search and limit the number of items returned.
+        /// For example, you might traverse the following hierarchy: DVD Used DVDs Kids and Family,
+        /// to select out of all the DVDs offered by Amazon only those that are appropriate for family viewing.
+        /// Returning the items associated with Kids and Family produces a much more targeted result than a search
+        /// based at the level of Used DVDs.
+        /// <p/>
+        /// Alternatively, by traversing up the browse node tree, you can determine the root category of an item.
+        /// You might do that, for example, to return the top seller of the root product category using the
+        /// TopSeller response group in an ItemSearch request.
+        /// <p/>
+        /// You can use BrowseNodeLookup iteratively to navigate through the browse node hierarchy to
+        /// reach the node that most appropriately suits your search. Then you can use the browse node ID in
+        /// an ItemSearch request. This response would be far more targeted than, for example,
+        /// searching through all of the browse nodes in a search index.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>BrowseNodeInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public BrowseNodeLookupResponse BrowseNodeLookup(params BrowseNodeLookupRequest [] request) 
+        {
+            return Invoke<BrowseNodeLookupResponse>("BrowseNodeLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// List Search  Action
+        /// </summary>
+        /// <param name="action">List Search  request</param>
+        /// <returns>List Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a customer name or Email address, the ListSearch operation
+        /// returns the associated list ID(s) but not the list items. To find those,
+        /// use the list ID returned by ListSearch with  ListLookup  .
+        /// <p/>
+        /// Specifying a full name or just a first or last name in the request typically
+        /// returns multiple lists belonging to different people. Using Email as the
+        /// identifier produces more filtered results.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>ListMinimum</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ListSearchResponse ListSearch(params ListSearchRequest [] request) 
+        {
+            return Invoke<ListSearchResponse>("ListSearchResponse.xml");
+        }
+        
+        /// <summary>
+        /// List Lookup  Action
+        /// </summary>
+        /// <param name="action">List Lookup  request</param>
+        /// <returns>List Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ListLookup operation returns, by default, summary information about a
+        /// list that you specify in the request. The summary information includes the:
+        /// <p/>
+        /// <ul>
+        /// <li>Creation date of the list</li>
+        /// <li>Name of the list's creator</li>
+        /// </ul>
+        /// <p/>
+        /// The operation returns up to ten sets of summary information per page.
+        /// <p/>
+        /// Lists are specified by list type and list ID, which can be found using ListSearch.
+        /// <p/>
+        /// You cannot lookup more than one list at a time in a single request.
+        /// You can, however, make a batch request to look for more than one list simultaneously.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListFull</li>
+        /// <li>ListItems</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Small</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ListLookupResponse ListLookup(params ListLookupRequest [] request) 
+        {
+            return Invoke<ListLookupResponse>("ListLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Customer Content Search  Action
+        /// </summary>
+        /// <param name="action">Customer Content Search  request</param>
+        /// <returns>Customer Content Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer Email address or name, the CustomerContentSearch
+        /// operation returns matching customer IDs, names, nicknames, and residence
+        /// information (city, state, and country). In general, supplying an Email
+        /// address returns unique results whereas supplying a name more often
+        /// returns multiple results.
+        /// <p/>
+        /// Often you use CustomerContentSearch to find a customer ID that you can
+        /// use in the CustomerContentLookup operation, which returns more
+        /// extensive customer information.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CustomerContentSearchResponse CustomerContentSearch(params CustomerContentSearchRequest [] request) 
+        {
+            return Invoke<CustomerContentSearchResponse>("CustomerContentSearchResponse.xml");
+        }
+        
+        /// <summary>
+        /// Customer Content Lookup  Action
+        /// </summary>
+        /// <param name="action">Customer Content Lookup  request</param>
+        /// <returns>Customer Content Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer ID, the CustomerContentLookup operation
+        /// retrieves all of the information a customer has made public about
+        /// themselves on Amazon. Such information includes some or all of the following:
+        /// <p/>
+        /// <ul>
+        /// <li>AboutMe</li>
+        /// <li>Birthday</li>
+        /// <li>City, State and Country</li>
+        /// <li>Customer Reviews</li>
+        /// <li>Customer ID</li>
+        /// <li>Name</li>
+        /// <li>Nickname</li>
+        /// <li>Wedding Registry</li>
+        /// <li>WishList</li>
+        /// </ul>
+        /// <p/>
+        /// To find a customer ID, use the CustomerContentSearch operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// <li>CustomerReviews</li>
+        /// <li>CustomerLists</li>
+        /// <li>CustomerFull</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CustomerContentLookupResponse CustomerContentLookup(params CustomerContentLookupRequest [] request) 
+        {
+            return Invoke<CustomerContentLookupResponse>("CustomerContentLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Similarity Lookup  Action
+        /// </summary>
+        /// <param name="action">Similarity Lookup  request</param>
+        /// <returns>Similarity Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SimilarityLookup operation returns up to ten products per page that are
+        /// similar to one or more items specified in the request. This operation is
+        /// typically used to pique a customer's interest in buying something similar to what they've already ordered.
+        /// <p/>
+        /// If you specify more than one item, SimilarityLookup returns the intersection of similar
+        /// items each item would return separately. Alternatively, you can use the SimilarityType
+        /// parameter to return the union of items that are similar to any of the specified items.
+        /// A maximum of ten similar items are returned; the operation does not return additional
+        /// pages of similar items. if there are more than ten similar items, running the same
+        /// request can result in different answers because the ten that are included in the
+        /// response are picked randomly.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>Large</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SimilarityLookupResponse SimilarityLookup(params SimilarityLookupRequest [] request) 
+        {
+            return Invoke<SimilarityLookupResponse>("SimilarityLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Seller Lookup  Action
+        /// </summary>
+        /// <param name="action">Seller Lookup  request</param>
+        /// <returns>Seller Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerLookup operation returns detailed information about sellers and,
+        /// in the US locale, merchants. To lookup a seller, you must use their seller ID.
+        /// The information returned includes the seller's name, location, average rating by
+        /// customers, and the first five customer feedback entries. SellerLookup will not,
+        /// however, return the seller's Email or business addresses.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Seller</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerLookupResponse SellerLookup(params SellerLookupRequest [] request) 
+        {
+            return Invoke<SellerLookupResponse>("SellerLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Cart Get  Action
+        /// </summary>
+        /// <param name="action">Cart Get  request</param>
+        /// <returns>Cart Get  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartGet operation enables you to retrieve the IDs, quantities,
+        /// and prices of all of the items, including SavedForLater items in a
+        /// remote shopping cart.
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons,
+        /// such as availability, you should not keep a copy of a cart locally.
+        /// Instead, use CartGet to retrieve the items in a remote shopping cart.
+        /// <p/>
+        /// To retrieve the items in a cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned in the CartCreate operation.
+        /// A value similar to HMAC, URLEncodedHMAC, is also returned. This value is the
+        /// URL encoded version of the HMAC. This encoding is necessary because some
+        /// characters, such as + and /, cannot be included in a URL. Rather than
+        /// encoding the HMAC yourself, use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartGet does not work after the customer has used the PurchaseURL to either
+        /// purchase the items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartGet
+        /// requests must also include a value for AssociateTag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartGetResponse CartGet(params CartGetRequest [] request) 
+        {
+            return Invoke<CartGetResponse>("CartGetResponse.xml");
+        }
+        
+        /// <summary>
+        /// Cart Add  Action
+        /// </summary>
+        /// <param name="action">Cart Add  request</param>
+        /// <returns>Cart Add  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartAdd operation enables you to add items to an existing remote shopping cart.
+        /// CartAdd can only be used to place a new item in a shopping cart. It cannot be used to increase
+        /// the quantity of an item already in the cart. If you would like to increase the quantity of
+        /// an item that is already in the cart, you must use the CartModify operation.
+        /// <p/>
+        /// You add an item to a cart by specifying the item's OfferListingId, or ASIN and ListItemId.
+        /// Once in a cart, an item can only be identified by its CartItemId. That is, an item in a cart
+        /// cannot be accessed by its ASIN or OfferListingId. CartItemId is returned by CartCreate, CartGet, and CartAdd.
+        /// <p/>
+        /// To add items to a cart, you must specify the cart using the CartId and HMAC values, which are
+        /// returned by the CartCreate operation.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartAdd requests must
+        /// also include a value for Associate Tag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartAddResponse CartAdd(params CartAddRequest [] request) 
+        {
+            return Invoke<CartAddResponse>("CartAddResponse.xml");
+        }
+        
+        /// <summary>
+        /// Cart Create  Action
+        /// </summary>
+        /// <param name="action">Cart Create  request</param>
+        /// <returns>Cart Create  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartCreate operation enables you to create a remote shopping cart.
+        /// A shopping cart is the metaphor used by most e-commerce solutions. It is a
+        /// temporary data storage structure that resides on Amazon servers. The
+        /// structure contains the items a customer wants to buy. In ECS, the shopping
+        /// cart is considered remote because it is hosted by Amazon servers.
+        /// In this way, the cart is remote to the vendor's web site where the customer
+        /// views and selects the items they want to purchase.
+        /// <p/>
+        /// Once you add an item to a cart by specifying the item's ListItemId and ASIN,
+        /// or OfferListing ID, the item is assigned a CartItemId and accessible only
+        /// by that value. That is, in subsequent requests, an item in a cart cannot
+        /// be accessed by its ListItemId and ASIN, or OfferListingId. CartItemId is
+        /// returned by CartCreate , CartGet , and CartAdd .
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons, such as
+        /// item availability, you should not keep a copy of a cart locally. Instead,
+        /// use the other cart operations to modify the cart contents. For example,
+        /// to retrieve contents of the cart, which are represented by CartItemIds,
+        /// use CartGet .
+        /// <p/>
+        /// Available products are added as cart items. Unavailable items, for example,
+        /// items out of stock, discontinued, or future releases, are added as SaveForLaterItems.
+        /// No error is generated. The Amazon database changes regularly. You may find a product
+        /// with an offer listing ID but by the time the item is added to the cart the product
+        /// is no longer available. The checkout page in the Order Pipeline clearly lists
+        /// items that are available and those that are SaveForLaterItems.
+        /// <p/>
+        /// It is impossible to create an empty shopping cart. You have to add at least one
+        /// item to a shopping cart using a single CartCreate request. You can add specific
+        /// quantities (up to 999) of each item.
+        /// <p/>
+        /// CartCreate can be used only once in the life cycle of a cart. To modify the
+        /// contents of the cart, use one of the other cart operations.
+        /// <p/>
+        /// Carts cannot be deleted. They expire automatically after being unused for 7 days.
+        /// The lifespan of a cart restarts, however, every time a cart is modified.
+        /// In this way, a cart can last for more than 7 days. If, for example, on day 6,
+        /// the customer modifies a cart, the 7 day countdown starts over.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartCreateResponse CartCreate(params CartCreateRequest [] request) 
+        {
+            return Invoke<CartCreateResponse>("CartCreateResponse.xml");
+        }
+        
+        /// <summary>
+        /// Cart Modify  Action
+        /// </summary>
+        /// <param name="action">Cart Modify  request</param>
+        /// <returns>Cart Modify  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartModify operation enables you to:
+        /// <p/>
+        /// <ul>
+        /// <li>Change the quantity of items that are already in a remote shopping cart.</li>
+        /// <li>Move items from the active area of a cart to the SaveForLater area or the reverse</li>
+        /// <li>Change the MergeCart setting. </li>
+        /// </ul>
+        /// <p/>
+        /// To modify the number of items in a cart, you must specify the
+        /// cart using the CartId and HMAC values that are returned in the
+        /// CartCreate operation. A value similar to HMAC, URLEncodedHMAC,
+        /// is also returned. This value is the URL encoded version of the HMAC.
+        /// This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself,
+        /// use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// You can use CartModify to modify the number of items in a remote shopping
+        /// cart by setting the value of the Quantity parameter appropriately. You can
+        /// eliminate an item from a cart by setting the value of the Quantity parameter
+        /// to zero. Or, you can double the number of a particular item in the cart by
+        /// doubling its Quantity . You cannot, however, use CartModify to add new items to a cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all
+        /// CartModify requests must also include a value for Associate Tag
+        /// otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartModifyResponse CartModify(params CartModifyRequest [] request) 
+        {
+            return Invoke<CartModifyResponse>("CartModifyResponse.xml");
+        }
+        
+        /// <summary>
+        /// Cart Clear  Action
+        /// </summary>
+        /// <param name="action">Cart Clear  request</param>
+        /// <returns>Cart Clear  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartClear operation enables you to remove all of the items in a remote shopping cart, including
+        /// SavedForLater items. To remove only some of the items in a cart or to reduce the quantity
+        /// of one or more items, use  CartModify  .
+        /// <p/>
+        /// To delete all of the items from a remote shopping cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned by the CartCreate operation. A value similar
+        /// to the HMAC, URLEncodedHMAC, is also returned. This value is the URL encoded version
+        /// of the HMAC. This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself, use the
+        /// URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartClear does not work after the customer has used the PurchaseURL to either purchase the
+        /// items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// Carts exist even though they have been emptied. The lifespan of a cart is 7 days since the
+        /// last time it was acted upon. For example, if a cart created 6 days ago is modified,
+        /// the cart lifespan is reset to 7 days.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartClearResponse CartClear(params CartClearRequest [] request) 
+        {
+            return Invoke<CartClearResponse>("CartClearResponse.xml");
+        }
+        
+        /// <summary>
+        /// Transaction Lookup  Action
+        /// </summary>
+        /// <param name="action">Transaction Lookup  request</param>
+        /// <returns>Transaction Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TransactionLookup operation returns information about up to ten purchases
+        /// that have already taken place. Transaction IDs are created whenever a purchase
+        /// request is made by a customer.
+        /// <p/>
+        /// For a specified transaction ID, TransactionLookup returns:
+        /// <ul>
+        /// <li>Price details</li>
+        /// <li>Sale date</li>
+        /// <li>Shipping details</li>
+        /// <li>Seller details</li>
+        /// <li>Item's condition </li>
+        /// </ul>
+        /// <p/>
+        /// For privacy reasons, this operation does not return information about the customer
+        /// who purchased the items.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>TransactionDetails</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public TransactionLookupResponse TransactionLookup(params TransactionLookupRequest [] request) 
+        {
+            return Invoke<TransactionLookupResponse>("TransactionLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Seller Listing Search  Action
+        /// </summary>
+        /// <param name="action">Seller Listing Search  request</param>
+        /// <returns>Seller Listing Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingSearch operation enables you to search for items offered
+        /// by specific sellers. You cannot use SellerListingSearch to look up items sold by merchants.
+        /// To look up an item sold by a merchant, use  ItemLookup   or  ItemSearch
+        /// along with the MerchantId parameter.
+        /// <p/>
+        /// SellerListingSearch returns the listing ID or exchange ID of an item.
+        /// Typically, you use those values with SellerListingLookup to find out more about those items.
+        /// <p/>
+        /// Each SellerListingSearch request returns up to ten items. By default, the first ten
+        /// items are returned. You can use the ListingPage parameter to retrieve additional pages
+        /// of (up to) ten listings.
+        /// <p/>
+        /// To use ECS, sellers must have less than 100,000 items for sale. Sellers that have more
+        /// items for sale should use, instead of ECS, other seller APIs, including the Amazon
+        /// Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerListingSearchResponse SellerListingSearch(params SellerListingSearchRequest [] request) 
+        {
+            return Invoke<SellerListingSearchResponse>("SellerListingSearchResponse.xml");
+        }
+        
+        /// <summary>
+        /// Seller Listing Lookup  Action
+        /// </summary>
+        /// <param name="action">Seller Listing Lookup  request</param>
+        /// <returns>Seller Listing Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingLookup operation enables you to return information
+        /// about a seller's listings, including product descriptions, availability,
+        /// condition, and quantity available. The response also includes the seller's nickname.
+        /// Each request requires a seller ID.
+        /// <p/>
+        /// You can also find a seller's items using ItemLookup. There are, however,
+        /// some reasons why it is better to use SellerListingLookup:
+        /// <p/>
+        /// <ul>
+        /// <li>SellerListingLookup enables you to search by seller ID.</li>
+        /// <li>SellerListingLookup returns much more information than ItemLookup.</li>
+        /// </ul>
+        /// <p/>
+        /// This operation only works with sellers who have less than 100,000 items for sale.
+        /// Sellers that have more items for sale should use, instead of ECS, other APIs,
+        /// including the Amazon Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerListingLookupResponse SellerListingLookup(params SellerListingLookupRequest [] request) 
+        {
+            return Invoke<SellerListingLookupResponse>("SellerListingLookupResponse.xml");
+        }
+        
+        /// <summary>
+        /// Tag Lookup  Action
+        /// </summary>
+        /// <param name="action">Tag Lookup  request</param>
+        /// <returns>Tag Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TagLookup operation returns entities based on specifying one to five tags.
+        /// A tag is a descriptive word that a customer uses to label entities on Amazon's retail website.
+        /// Entities can be items for sale, Listmania lists, guides, and so forth. For example, a customer might tag a
+        /// given entity with the phrase, "BestCookbook." For more information, see Tags.
+        /// <p/>
+        /// In the tag-related response groups, Tags and TagSummary specify the amount of informtion returned. The
+        /// other tag-related response groups, TaggedGuides, TaggedItems, and Tagged listmaniaLists,
+        /// specify the kind of entity tagged.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>AlternateVersions</li>
+        /// <li>BrowseNodes</li>
+        /// <li>Collections</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>OfferListings</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>ShippingCharges</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>Tracks</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public TagLookupResponse TagLookup(params TagLookupRequest [] request) 
+        {
+            return Invoke<TagLookupResponse>("TagLookupResponse.xml");
+        }
+
+        // Private API ------------------------------------------------------------//
+
+        private T Invoke<T>(String xmlResource)
+        {
+            XmlSerializer serlizer = new XmlSerializer(typeof(T));
+            Stream xmlStream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream(xmlResource);
+            return (T)serlizer.Deserialize(xmlStream);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/BrowseNodeLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/BrowseNodeLookupResponse.xml
new file mode 100644
index 0000000..72f2783
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/BrowseNodeLookupResponse.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BrowseNodeLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <BrowseNodes>
+    <!--Zero or more repetitions:-->
+    <BrowseNode>
+      <!--Optional:-->
+      <BrowseNodeId>string</BrowseNodeId>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <IsCategoryRoot>false</IsCategoryRoot>
+      <!--Optional:-->
+      <Properties>
+        <!--1 or more repetitions:-->
+        <Property>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Value>string</Value>
+        </Property>
+      </Properties>
+      <!--Optional:-->
+      <Children>
+        <!--1 or more repetitions:-->
+        <BrowseNode/>
+      </Children>
+      <!--Optional:-->
+      <Ancestors>
+        <!--1 or more repetitions:-->
+        <BrowseNode/>
+      </Ancestors>
+      <!--Optional:-->
+      <TopSellers>
+        <!--1 or more repetitions:-->
+        <TopSeller>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </TopSeller>
+      </TopSellers>
+      <!--Optional:-->
+      <NewReleases>
+        <!--1 or more repetitions:-->
+        <NewRelease>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </NewRelease>
+      </NewReleases>
+    </BrowseNode>
+  </BrowseNodes>
+</BrowseNodeLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartAddResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartAddResponse.xml
new file mode 100644
index 0000000..ae496ec
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartAddResponse.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CartAddResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Cart>
+    <CartId>string</CartId>
+    <HMAC>string</HMAC>
+    <URLEncodedHMAC>string</URLEncodedHMAC>
+    <!--Optional:-->
+    <PurchaseURL>string</PurchaseURL>
+    <!--Optional:-->
+    <SubTotal>
+      <!--Optional:-->
+      <Amount>100</Amount>
+      <!--Optional:-->
+      <CurrencyCode>string</CurrencyCode>
+      <FormattedPrice>string</FormattedPrice>
+    </SubTotal>
+    <!--Optional:-->
+    <CartItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <CartItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </CartItem>
+    </CartItems>
+    <!--Optional:-->
+    <SavedForLaterItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <SavedForLaterItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </SavedForLaterItem>
+    </SavedForLaterItems>
+    <!--Optional:-->
+    <SimilarProducts>
+      <!--1 or more repetitions:-->
+      <SimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarProduct>
+    </SimilarProducts>
+    <!--Optional:-->
+    <TopSellers>
+      <!--1 or more repetitions:-->
+      <TopSeller>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </TopSeller>
+    </TopSellers>
+    <!--Optional:-->
+    <NewReleases>
+      <!--1 or more repetitions:-->
+      <NewRelease>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </NewRelease>
+    </NewReleases>
+    <!--Optional:-->
+    <SimilarViewedProducts>
+      <!--1 or more repetitions:-->
+      <SimilarViewedProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarViewedProduct>
+    </SimilarViewedProducts>
+    <!--Optional:-->
+    <OtherCategoriesSimilarProducts>
+      <!--1 or more repetitions:-->
+      <OtherCategoriesSimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </OtherCategoriesSimilarProduct>
+    </OtherCategoriesSimilarProducts>
+  </Cart>
+</CartAddResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartClearResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartClearResponse.xml
new file mode 100644
index 0000000..bfb0661
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartClearResponse.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CartClearResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Cart>
+    <CartId>string</CartId>
+    <HMAC>string</HMAC>
+    <URLEncodedHMAC>string</URLEncodedHMAC>
+    <!--Optional:-->
+    <PurchaseURL>string</PurchaseURL>
+    <!--Optional:-->
+    <SubTotal>
+      <!--Optional:-->
+      <Amount>100</Amount>
+      <!--Optional:-->
+      <CurrencyCode>string</CurrencyCode>
+      <FormattedPrice>string</FormattedPrice>
+    </SubTotal>
+    <!--Optional:-->
+    <CartItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <CartItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </CartItem>
+    </CartItems>
+    <!--Optional:-->
+    <SavedForLaterItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <SavedForLaterItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </SavedForLaterItem>
+    </SavedForLaterItems>
+    <!--Optional:-->
+    <SimilarProducts>
+      <!--1 or more repetitions:-->
+      <SimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarProduct>
+    </SimilarProducts>
+    <!--Optional:-->
+    <TopSellers>
+      <!--1 or more repetitions:-->
+      <TopSeller>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </TopSeller>
+    </TopSellers>
+    <!--Optional:-->
+    <NewReleases>
+      <!--1 or more repetitions:-->
+      <NewRelease>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </NewRelease>
+    </NewReleases>
+    <!--Optional:-->
+    <SimilarViewedProducts>
+      <!--1 or more repetitions:-->
+      <SimilarViewedProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarViewedProduct>
+    </SimilarViewedProducts>
+    <!--Optional:-->
+    <OtherCategoriesSimilarProducts>
+      <!--1 or more repetitions:-->
+      <OtherCategoriesSimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </OtherCategoriesSimilarProduct>
+    </OtherCategoriesSimilarProducts>
+  </Cart>
+</CartClearResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartCreateResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartCreateResponse.xml
new file mode 100644
index 0000000..4f238e3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartCreateResponse.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CartCreateResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Cart>
+    <CartId>string</CartId>
+    <HMAC>string</HMAC>
+    <URLEncodedHMAC>string</URLEncodedHMAC>
+    <!--Optional:-->
+    <PurchaseURL>string</PurchaseURL>
+    <!--Optional:-->
+    <SubTotal>
+      <!--Optional:-->
+      <Amount>100</Amount>
+      <!--Optional:-->
+      <CurrencyCode>string</CurrencyCode>
+      <FormattedPrice>string</FormattedPrice>
+    </SubTotal>
+    <!--Optional:-->
+    <CartItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <CartItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </CartItem>
+    </CartItems>
+    <!--Optional:-->
+    <SavedForLaterItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <SavedForLaterItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </SavedForLaterItem>
+    </SavedForLaterItems>
+    <!--Optional:-->
+    <SimilarProducts>
+      <!--1 or more repetitions:-->
+      <SimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarProduct>
+    </SimilarProducts>
+    <!--Optional:-->
+    <TopSellers>
+      <!--1 or more repetitions:-->
+      <TopSeller>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </TopSeller>
+    </TopSellers>
+    <!--Optional:-->
+    <NewReleases>
+      <!--1 or more repetitions:-->
+      <NewRelease>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </NewRelease>
+    </NewReleases>
+    <!--Optional:-->
+    <SimilarViewedProducts>
+      <!--1 or more repetitions:-->
+      <SimilarViewedProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarViewedProduct>
+    </SimilarViewedProducts>
+    <!--Optional:-->
+    <OtherCategoriesSimilarProducts>
+      <!--1 or more repetitions:-->
+      <OtherCategoriesSimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </OtherCategoriesSimilarProduct>
+    </OtherCategoriesSimilarProducts>
+  </Cart>
+</CartCreateResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartGetResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartGetResponse.xml
new file mode 100644
index 0000000..58e1fc9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartGetResponse.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CartGetResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Cart>
+    <CartId>string</CartId>
+    <HMAC>string</HMAC>
+    <URLEncodedHMAC>string</URLEncodedHMAC>
+    <!--Optional:-->
+    <PurchaseURL>string</PurchaseURL>
+    <!--Optional:-->
+    <SubTotal>
+      <!--Optional:-->
+      <Amount>100</Amount>
+      <!--Optional:-->
+      <CurrencyCode>string</CurrencyCode>
+      <FormattedPrice>string</FormattedPrice>
+    </SubTotal>
+    <!--Optional:-->
+    <CartItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <CartItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </CartItem>
+    </CartItems>
+    <!--Optional:-->
+    <SavedForLaterItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <SavedForLaterItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </SavedForLaterItem>
+    </SavedForLaterItems>
+    <!--Optional:-->
+    <SimilarProducts>
+      <!--1 or more repetitions:-->
+      <SimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarProduct>
+    </SimilarProducts>
+    <!--Optional:-->
+    <TopSellers>
+      <!--1 or more repetitions:-->
+      <TopSeller>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </TopSeller>
+    </TopSellers>
+    <!--Optional:-->
+    <NewReleases>
+      <!--1 or more repetitions:-->
+      <NewRelease>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </NewRelease>
+    </NewReleases>
+    <!--Optional:-->
+    <SimilarViewedProducts>
+      <!--1 or more repetitions:-->
+      <SimilarViewedProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarViewedProduct>
+    </SimilarViewedProducts>
+    <!--Optional:-->
+    <OtherCategoriesSimilarProducts>
+      <!--1 or more repetitions:-->
+      <OtherCategoriesSimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </OtherCategoriesSimilarProduct>
+    </OtherCategoriesSimilarProducts>
+  </Cart>
+</CartGetResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartModifyResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartModifyResponse.xml
new file mode 100644
index 0000000..c1ae465
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CartModifyResponse.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CartModifyResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Cart>
+    <CartId>string</CartId>
+    <HMAC>string</HMAC>
+    <URLEncodedHMAC>string</URLEncodedHMAC>
+    <!--Optional:-->
+    <PurchaseURL>string</PurchaseURL>
+    <!--Optional:-->
+    <SubTotal>
+      <!--Optional:-->
+      <Amount>100</Amount>
+      <!--Optional:-->
+      <CurrencyCode>string</CurrencyCode>
+      <FormattedPrice>string</FormattedPrice>
+    </SubTotal>
+    <!--Optional:-->
+    <CartItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <CartItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </CartItem>
+    </CartItems>
+    <!--Optional:-->
+    <SavedForLaterItems>
+      <!--Optional:-->
+      <SubTotal>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </SubTotal>
+      <!--1 or more repetitions:-->
+      <SavedForLaterItem>
+        <CartItemId>string</CartItemId>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <ExchangeId>string</ExchangeId>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Optional:-->
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerNickname>string</SellerNickname>
+        <Quantity>string</Quantity>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ListOwner>string</ListOwner>
+        <!--Optional:-->
+        <ListType>string</ListType>
+        <!--Optional:-->
+        <MetaData>
+          <!--Zero or more repetitions:-->
+          <KeyValuePair>
+            <!--Optional:-->
+            <Key>string</Key>
+            <!--Optional:-->
+            <Value>string</Value>
+          </KeyValuePair>
+        </MetaData>
+        <!--Optional:-->
+        <Price>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Price>
+        <!--Optional:-->
+        <ItemTotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ItemTotal>
+      </SavedForLaterItem>
+    </SavedForLaterItems>
+    <!--Optional:-->
+    <SimilarProducts>
+      <!--1 or more repetitions:-->
+      <SimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarProduct>
+    </SimilarProducts>
+    <!--Optional:-->
+    <TopSellers>
+      <!--1 or more repetitions:-->
+      <TopSeller>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </TopSeller>
+    </TopSellers>
+    <!--Optional:-->
+    <NewReleases>
+      <!--1 or more repetitions:-->
+      <NewRelease>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </NewRelease>
+    </NewReleases>
+    <!--Optional:-->
+    <SimilarViewedProducts>
+      <!--1 or more repetitions:-->
+      <SimilarViewedProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </SimilarViewedProduct>
+    </SimilarViewedProducts>
+    <!--Optional:-->
+    <OtherCategoriesSimilarProducts>
+      <!--1 or more repetitions:-->
+      <OtherCategoriesSimilarProduct>
+        <!--Optional:-->
+        <ASIN>string</ASIN>
+        <!--Optional:-->
+        <Title>string</Title>
+      </OtherCategoriesSimilarProduct>
+    </OtherCategoriesSimilarProducts>
+  </Cart>
+</CartModifyResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentLookupResponse.xml
new file mode 100644
index 0000000..f3d0787
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentLookupResponse.xml
@@ -0,0 +1,2064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CustomerContentLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Customers>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <Customer>
+      <CustomerId>string</CustomerId>
+      <!--Optional:-->
+      <Nickname>string</Nickname>
+      <!--Optional:-->
+      <Birthday>string</Birthday>
+      <!--Optional:-->
+      <WishListId>string</WishListId>
+      <!--Optional:-->
+      <Location>
+        <!--Optional:-->
+        <UserDefinedLocation>string</UserDefinedLocation>
+        <!--Optional:-->
+        <City>string</City>
+        <!--Optional:-->
+        <State>string</State>
+        <!--Optional:-->
+        <Country>string</Country>
+      </Location>
+      <!--Zero or more repetitions:-->
+      <CustomerReviews>
+        <!--Optional:-->
+        <AverageRating>1000.00</AverageRating>
+        <!--Optional:-->
+        <TotalReviews>200</TotalReviews>
+        <!--Optional:-->
+        <TotalReviewPages>200</TotalReviewPages>
+        <!--Zero or more repetitions:-->
+        <Review>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Rating>1000.00</Rating>
+          <!--Optional:-->
+          <HelpfulVotes>200</HelpfulVotes>
+          <!--Optional:-->
+          <CustomerId>string</CustomerId>
+          <!--Optional:-->
+          <Reviewer>
+            <!--Optional:-->
+            <CustomerId>string</CustomerId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <Location>string</Location>
+          </Reviewer>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <Summary>string</Summary>
+          <!--Optional:-->
+          <Content>string</Content>
+        </Review>
+      </CustomerReviews>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>Item</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item>
+              <!--Optional:-->
+              <AlternateVersions>
+                <!--Zero or more repetitions:-->
+                <AlternateVersion>
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                  <!--Optional:-->
+                  <Binding>string</Binding>
+                </AlternateVersion>
+              </AlternateVersions>
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <ParentASIN>string</ParentASIN>
+              <!--Optional:-->
+              <DetailPageURL>string</DetailPageURL>
+              <!--Optional:-->
+              <SalesRank>string</SalesRank>
+              <!--Optional:-->
+              <SmallImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SmallImage>
+              <!--Optional:-->
+              <MediumImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </MediumImage>
+              <!--Optional:-->
+              <LargeImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </LargeImage>
+              <!--Zero or more repetitions:-->
+              <ImageSets>
+                <!--Optional:-->
+                <MerchantId>string</MerchantId>
+                <!--Zero or more repetitions:-->
+                <ImageSet Category="string">
+                  <!--Optional:-->
+                  <SwatchImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SwatchImage>
+                  <!--Optional:-->
+                  <SmallImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SmallImage>
+                  <!--Optional:-->
+                  <ThumbnailImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </ThumbnailImage>
+                  <!--Optional:-->
+                  <TinyImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </TinyImage>
+                  <!--Optional:-->
+                  <MediumImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </MediumImage>
+                  <!--Optional:-->
+                  <LargeImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </LargeImage>
+                </ImageSet>
+              </ImageSets>
+              <!--Optional:-->
+              <ItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Zero or more repetitions:-->
+                <Age>string</Age>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <AnalogVideoFormat>string</AnalogVideoFormat>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Zero or more repetitions:-->
+                <Category>string</Category>
+                <!--Zero or more repetitions:-->
+                <CategoryBin>string</CategoryBin>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Zero or more repetitions:-->
+                <Character>string</Character>
+                <!--Optional:-->
+                <CEROAgeRating>string</CEROAgeRating>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <ClubType>string</ClubType>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Zero or more repetitions:-->
+                <CompatibleDevices>string</CompatibleDevices>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Zero or more repetitions:-->
+                <DataLinkProtocol>string</DataLinkProtocol>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplayColorSupport>string</DisplayColorSupport>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Zero or more repetitions:-->
+                <EducationalFocus>string</EducationalFocus>
+                <!--Zero or more repetitions:-->
+                <Ethnicity>string</Ethnicity>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FilmColorType>string</FilmColorType>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FlavorName>string</FlavorName>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Zero or more repetitions:-->
+                <FormFactor>string</FormFactor>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Zero or more repetitions:-->
+                <GemTypeSetElement>string</GemTypeSetElement>
+                <!--Zero or more repetitions:-->
+                <Gender>string</Gender>
+                <!--Optional:-->
+                <Genre>string</Genre>
+                <!--Optional:-->
+                <GLProductGroup>string</GLProductGroup>
+                <!--Optional:-->
+                <GolfClubFlex>string</GolfClubFlex>
+                <!--Optional:-->
+                <GolfClubLoft>string</GolfClubLoft>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HandOrientation>string</HandOrientation>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">1000.00</HardDiskSize>
+                <!--Optional:-->
+                <HardDiskInterface>string</HardDiskInterface>
+                <!--Optional:-->
+                <HardwarePlatform>string</HardwarePlatform>
+                <!--Optional:-->
+                <HasAutoFocus>true</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>true</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>true</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>false</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>false</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>false</IncludesMp3Player>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Zero or more repetitions:-->
+                <IngredientsSetElement>string</IngredientsSetElement>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Zero or more repetitions:-->
+                <Interest>string</Interest>
+                <!--Optional:-->
+                <IsAdultProduct>true</IsAdultProduct>
+                <!--Optional:-->
+                <IsAutographed>true</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>true</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IsPreannounce>false</IsPreannounce>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Zero or more repetitions:-->
+                <LanguageName>string</LanguageName>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LensType>string</LensType>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Zero or more repetitions:-->
+                <MaterialTypeSetElement>string</MaterialTypeSetElement>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MediaType>string</MediaType>
+                <!--Optional:-->
+                <MemorySlotsAvailable>string</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OperatingSystem>string</OperatingSystem>
+                <!--Optional:-->
+                <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PackageQuantity>200</PackageQuantity>
+                <!--Zero or more repetitions:-->
+                <PantLength>string</PantLength>
+                <!--Zero or more repetitions:-->
+                <PantSize>string</PantSize>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Zero or more repetitions:-->
+                <PrimaryColor>string</PrimaryColor>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+                <!--Optional:-->
+                <ProductTypeName>string</ProductTypeName>
+                <!--Optional:-->
+                <ProductTypeSubcategory>string</ProductTypeSubcategory>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <RemovableStorage>string</RemovableStorage>
+                <!--Optional:-->
+                <RequiredVoltageRange>string</RequiredVoltageRange>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <RunningTime Units="string">1000.00</RunningTime>
+                <!--Optional:-->
+                <ScentName>string</ScentName>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <ShaftMaterialType>string</ShaftMaterialType>
+                <!--Zero or more repetitions:-->
+                <ShoeSize>string</ShoeSize>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <Style>string</Style>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SupportedMediaSize>string</SupportedMediaSize>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Zero or more repetitions:-->
+                <TargetBrand>string</TargetBrand>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WEEETaxValue>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </WEEETaxValue>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </ItemAttributes>
+              <!--Optional:-->
+              <MerchantItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CountryOfOrigin>string</CountryOfOrigin>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Optional:-->
+                <Customizable>string</Customizable>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <Description>string</Description>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Optional:-->
+                <FixedShippingCharge>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </FixedShippingCharge>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">200</HardDiskSize>
+                <!--Optional:-->
+                <HasAutoFocus>false</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>false</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>false</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>false</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>true</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>true</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Indications>string</Indications>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Optional:-->
+                <IsAutographed>true</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>false</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>true</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MemorySlotsAvailable>200</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Zero or more repetitions:-->
+                <PurchasingChannel>string</PurchasingChannel>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <SafetyWarning>string</SafetyWarning>
+                <!--Optional:-->
+                <SalesRestriction>string</SalesRestriction>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <VendorRebate>
+                  <!--Optional:-->
+                  <Type>string</Type>
+                  <!--Optional:-->
+                  <StartDate>string</StartDate>
+                  <!--Optional:-->
+                  <EndDate>string</EndDate>
+                </VendorRebate>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WebsiteBuyability>string</WebsiteBuyability>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </MerchantItemAttributes>
+              <!--Optional:-->
+              <Collections>
+                <!--Zero or more repetitions:-->
+                <Collection>
+                  <!--Optional:-->
+                  <CollectionSummary>
+                    <!--Optional:-->
+                    <LowestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestListPrice>
+                    <!--Optional:-->
+                    <HighestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestListPrice>
+                    <!--Optional:-->
+                    <LowestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestSalePrice>
+                    <!--Optional:-->
+                    <HighestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestSalePrice>
+                  </CollectionSummary>
+                  <!--Optional:-->
+                  <CollectionParent>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionParent>
+                  <!--Zero or more repetitions:-->
+                  <CollectionItem>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionItem>
+                </Collection>
+              </Collections>
+              <!--Optional:-->
+              <Subjects>
+                <!--Zero or more repetitions:-->
+                <Subject>string</Subject>
+              </Subjects>
+              <!--Optional:-->
+              <OfferSummary>
+                <!--Optional:-->
+                <LowestNewPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestNewPrice>
+                <!--Optional:-->
+                <LowestUsedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestUsedPrice>
+                <!--Optional:-->
+                <LowestCollectiblePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestCollectiblePrice>
+                <!--Optional:-->
+                <LowestRefurbishedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestRefurbishedPrice>
+                <!--Optional:-->
+                <TotalNew>string</TotalNew>
+                <!--Optional:-->
+                <TotalUsed>string</TotalUsed>
+                <!--Optional:-->
+                <TotalCollectible>string</TotalCollectible>
+                <!--Optional:-->
+                <TotalRefurbished>string</TotalRefurbished>
+              </OfferSummary>
+              <!--Optional:-->
+              <Offers>
+                <!--Optional:-->
+                <TotalOffers>200</TotalOffers>
+                <!--Optional:-->
+                <TotalOfferPages>200</TotalOfferPages>
+                <!--Zero or more repetitions:-->
+                <Offer>
+                  <!--Optional:-->
+                  <Merchant>
+                    <MerchantId>string</MerchantId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                  </Merchant>
+                  <!--Optional:-->
+                  <Seller>
+                    <SellerId>string</SellerId>
+                    <!--Optional:-->
+                    <SellerName>string</SellerName>
+                    <!--Optional:-->
+                    <SellerLegalName>string</SellerLegalName>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <About>string</About>
+                    <!--Optional:-->
+                    <MoreAbout>string</MoreAbout>
+                    <!--Optional:-->
+                    <Location>
+                      <!--Optional:-->
+                      <UserDefinedLocation>string</UserDefinedLocation>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </Location>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                    <!--Optional:-->
+                    <SellerFeedbackSummary>
+                      <!--Zero or more repetitions:-->
+                      <FeedbackDateRange Period="string">
+                        <!--Zero or more repetitions:-->
+                        <SellerFeedbackRating Type="string">
+                          <!--Optional:-->
+                          <Count>200</Count>
+                          <!--Optional:-->
+                          <Percentage>200</Percentage>
+                        </SellerFeedbackRating>
+                      </FeedbackDateRange>
+                    </SellerFeedbackSummary>
+                    <!--Optional:-->
+                    <SellerFeedback>
+                      <!--1 or more repetitions:-->
+                      <Feedback>
+                        <!--Optional:-->
+                        <Rating>200</Rating>
+                        <!--Optional:-->
+                        <Comment>string</Comment>
+                        <!--Optional:-->
+                        <Date>string</Date>
+                        <!--Optional:-->
+                        <RatedBy>string</RatedBy>
+                      </Feedback>
+                    </SellerFeedback>
+                  </Seller>
+                  <!--Optional:-->
+                  <OfferAttributes>
+                    <!--Optional:-->
+                    <Condition>string</Condition>
+                    <!--Optional:-->
+                    <SubCondition>string</SubCondition>
+                    <!--Optional:-->
+                    <ConditionNote>string</ConditionNote>
+                    <!--Optional:-->
+                    <WillShipExpedited>false</WillShipExpedited>
+                    <!--Optional:-->
+                    <WillShipInternational>false</WillShipInternational>
+                  </OfferAttributes>
+                  <!--Zero or more repetitions:-->
+                  <OfferListing>
+                    <!--Optional:-->
+                    <OfferListingId>string</OfferListingId>
+                    <!--Optional:-->
+                    <ExchangeId>string</ExchangeId>
+                    <!--Optional:-->
+                    <Price>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Price>
+                    <!--Optional:-->
+                    <SalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </SalePrice>
+                    <!--Optional:-->
+                    <AmountSaved>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </AmountSaved>
+                    <!--Optional:-->
+                    <PercentageSaved>200</PercentageSaved>
+                    <!--Optional:-->
+                    <Availability>string</Availability>
+                    <!--Optional:-->
+                    <AvailabilityAttributes>
+                      <!--Optional:-->
+                      <AvailabilityType>string</AvailabilityType>
+                      <!--Optional:-->
+                      <IsPreorder>false</IsPreorder>
+                      <!--Optional:-->
+                      <MinimumHours>100</MinimumHours>
+                      <!--Optional:-->
+                      <MaximumHours>100</MaximumHours>
+                    </AvailabilityAttributes>
+                    <!--Optional:-->
+                    <Quantity>100</Quantity>
+                    <!--Optional:-->
+                    <ISPUStoreAddress>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Address1>string</Address1>
+                      <!--Optional:-->
+                      <Address2>string</Address2>
+                      <!--Optional:-->
+                      <Address3>string</Address3>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <PostalCode>string</PostalCode>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </ISPUStoreAddress>
+                    <!--Optional:-->
+                    <ISPUStoreHours>string</ISPUStoreHours>
+                    <!--Optional:-->
+                    <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+                    <!--Optional:-->
+                    <SalesRestriction>string</SalesRestriction>
+                    <!--Zero or more repetitions:-->
+                    <ShippingCharge>
+                      <ShippingType>string</ShippingType>
+                      <ShippingPrice>
+                        <!--Optional:-->
+                        <Amount>100</Amount>
+                        <!--Optional:-->
+                        <CurrencyCode>string</CurrencyCode>
+                        <FormattedPrice>string</FormattedPrice>
+                      </ShippingPrice>
+                    </ShippingCharge>
+                  </OfferListing>
+                  <!--Optional:-->
+                  <LoyaltyPoints>
+                    <!--Optional:-->
+                    <Points>200</Points>
+                    <!--Optional:-->
+                    <TypicalRedemptionValue>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </TypicalRedemptionValue>
+                  </LoyaltyPoints>
+                  <!--Optional:-->
+                  <Promotions>
+                    <!--Zero or more repetitions:-->
+                    <Promotion>
+                      <!--Optional:-->
+                      <Summary>
+                        <PromotionId>string</PromotionId>
+                        <!--Optional:-->
+                        <Category>string</Category>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                        <!--Optional:-->
+                        <BenefitDescription>string</BenefitDescription>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                      </Summary>
+                      <!--Optional:-->
+                      <Details>
+                        <MerchantId>string</MerchantId>
+                        <OwningMerchantId>string</OwningMerchantId>
+                        <PromotionId>string</PromotionId>
+                        <PromotionCategory>string</PromotionCategory>
+                        <!--Optional:-->
+                        <MerchantPromotionId>string</MerchantPromotionId>
+                        <!--Optional:-->
+                        <GroupClaimCode>string</GroupClaimCode>
+                        <!--Optional:-->
+                        <CouponCombinationType>string</CouponCombinationType>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                        <!--Optional:-->
+                        <EligibilityRequirements>
+                          <!--Zero or more repetitions:-->
+                          <EligibilityRequirement>
+                            <EligibilityRequirementType>string</EligibilityRequirementType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <CurrencyAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </CurrencyAmount>
+                          </EligibilityRequirement>
+                        </EligibilityRequirements>
+                        <!--Optional:-->
+                        <Benefits>
+                          <!--Zero or more repetitions:-->
+                          <Benefit>
+                            <BenefitType>string</BenefitType>
+                            <ComponentType>string</ComponentType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <PercentOff>1.051732E7</PercentOff>
+                            <!--Optional:-->
+                            <FixedAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </FixedAmount>
+                            <!--Optional:-->
+                            <Ceiling>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </Ceiling>
+                          </Benefit>
+                        </Benefits>
+                        <!--Optional:-->
+                        <ItemApplicability>
+                          <ASIN>string</ASIN>
+                          <IsInBenefitSet>true</IsInBenefitSet>
+                          <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                        </ItemApplicability>
+                        <!--Optional:-->
+                        <MerchandisingMessage>string</MerchandisingMessage>
+                      </Details>
+                    </Promotion>
+                  </Promotions>
+                </Offer>
+              </Offers>
+              <!--Optional:-->
+              <VariationSummary>
+                <!--Optional:-->
+                <LowestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestPrice>
+                <!--Optional:-->
+                <HighestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestPrice>
+                <!--Optional:-->
+                <LowestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestSalePrice>
+                <!--Optional:-->
+                <HighestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestSalePrice>
+                <!--Optional:-->
+                <SingleMerchantId>string</SingleMerchantId>
+              </VariationSummary>
+              <!--Optional:-->
+              <Variations>
+                <!--Optional:-->
+                <TotalVariations>200</TotalVariations>
+                <!--Optional:-->
+                <TotalVariationPages>200</TotalVariationPages>
+                <!--Optional:-->
+                <VariationDimensions>
+                  <!--1 or more repetitions:-->
+                  <VariationDimension>string</VariationDimension>
+                </VariationDimensions>
+                <!--Zero or more repetitions:-->
+                <Item/>
+              </Variations>
+              <!--Optional:-->
+              <CustomerReviews>
+                <!--Optional:-->
+                <AverageRating>1000.00</AverageRating>
+                <!--Optional:-->
+                <TotalReviews>200</TotalReviews>
+                <!--Optional:-->
+                <TotalReviewPages>200</TotalReviewPages>
+                <!--Zero or more repetitions:-->
+                <Review>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Rating>1000.00</Rating>
+                  <!--Optional:-->
+                  <HelpfulVotes>200</HelpfulVotes>
+                  <!--Optional:-->
+                  <CustomerId>string</CustomerId>
+                  <!--Optional:-->
+                  <Reviewer>
+                    <!--Optional:-->
+                    <CustomerId>string</CustomerId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <Location>string</Location>
+                  </Reviewer>
+                  <!--Optional:-->
+                  <TotalVotes>200</TotalVotes>
+                  <!--Optional:-->
+                  <Date>string</Date>
+                  <!--Optional:-->
+                  <Summary>string</Summary>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                </Review>
+              </CustomerReviews>
+              <!--Optional:-->
+              <EditorialReviews>
+                <!--Zero or more repetitions:-->
+                <EditorialReview>
+                  <!--Optional:-->
+                  <Source>string</Source>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                  <!--Optional:-->
+                  <IsLinkSuppressed>false</IsLinkSuppressed>
+                </EditorialReview>
+              </EditorialReviews>
+              <!--Optional:-->
+              <SimilarProducts>
+                <!--1 or more repetitions:-->
+                <SimilarProduct>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </SimilarProduct>
+              </SimilarProducts>
+              <!--Optional:-->
+              <Accessories>
+                <!--1 or more repetitions:-->
+                <Accessory>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </Accessory>
+              </Accessories>
+              <!--Optional:-->
+              <Tracks>
+                <!--1 or more repetitions:-->
+                <Disc Number="201">
+                  <!--1 or more repetitions:-->
+                  <Track Number="201">string</Track>
+                </Disc>
+              </Tracks>
+              <!--Optional:-->
+              <BrowseNodes>
+                <!--Zero or more repetitions:-->
+                <BrowseNode>
+                  <!--Optional:-->
+                  <BrowseNodeId>string</BrowseNodeId>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <IsCategoryRoot>true</IsCategoryRoot>
+                  <!--Optional:-->
+                  <Properties>
+                    <!--1 or more repetitions:-->
+                    <Property>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Value>string</Value>
+                    </Property>
+                  </Properties>
+                  <!--Optional:-->
+                  <Children>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Children>
+                  <!--Optional:-->
+                  <Ancestors>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Ancestors>
+                  <!--Optional:-->
+                  <TopSellers>
+                    <!--1 or more repetitions:-->
+                    <TopSeller>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </TopSeller>
+                  </TopSellers>
+                  <!--Optional:-->
+                  <NewReleases>
+                    <!--1 or more repetitions:-->
+                    <NewRelease>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </NewRelease>
+                  </NewReleases>
+                </BrowseNode>
+              </BrowseNodes>
+              <!--Optional:-->
+              <SearchInside>
+                <!--Optional:-->
+                <TotalExcerpts>200</TotalExcerpts>
+                <!--Optional:-->
+                <Excerpt>
+                  <!--Optional:-->
+                  <Checksum>string</Checksum>
+                  <!--Optional:-->
+                  <PageType>string</PageType>
+                  <!--Optional:-->
+                  <!--Optional:-->
+                  <!--Optional:-->
+                </Excerpt>
+              </SearchInside>
+              <!--Optional:-->
+              <!--Optional:-->
+            </Item>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+    </Customer>
+  </Customers>
+</CustomerContentLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentSearchResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentSearchResponse.xml
new file mode 100644
index 0000000..ac78e7a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/CustomerContentSearchResponse.xml
@@ -0,0 +1,2064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CustomerContentSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Customers>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <Customer>
+      <CustomerId>string</CustomerId>
+      <!--Optional:-->
+      <Nickname>string</Nickname>
+      <!--Optional:-->
+      <Birthday>string</Birthday>
+      <!--Optional:-->
+      <WishListId>string</WishListId>
+      <!--Optional:-->
+      <Location>
+        <!--Optional:-->
+        <UserDefinedLocation>string</UserDefinedLocation>
+        <!--Optional:-->
+        <City>string</City>
+        <!--Optional:-->
+        <State>string</State>
+        <!--Optional:-->
+        <Country>string</Country>
+      </Location>
+      <!--Zero or more repetitions:-->
+      <CustomerReviews>
+        <!--Optional:-->
+        <AverageRating>1000.00</AverageRating>
+        <!--Optional:-->
+        <TotalReviews>200</TotalReviews>
+        <!--Optional:-->
+        <TotalReviewPages>200</TotalReviewPages>
+        <!--Zero or more repetitions:-->
+        <Review>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Rating>1000.00</Rating>
+          <!--Optional:-->
+          <HelpfulVotes>200</HelpfulVotes>
+          <!--Optional:-->
+          <CustomerId>string</CustomerId>
+          <!--Optional:-->
+          <Reviewer>
+            <!--Optional:-->
+            <CustomerId>string</CustomerId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <Location>string</Location>
+          </Reviewer>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <Summary>string</Summary>
+          <!--Optional:-->
+          <Content>string</Content>
+        </Review>
+      </CustomerReviews>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>Item</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item>
+              <!--Optional:-->
+              <AlternateVersions>
+                <!--Zero or more repetitions:-->
+                <AlternateVersion>
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                  <!--Optional:-->
+                  <Binding>string</Binding>
+                </AlternateVersion>
+              </AlternateVersions>
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <ParentASIN>string</ParentASIN>
+              <!--Optional:-->
+              <DetailPageURL>string</DetailPageURL>
+              <!--Optional:-->
+              <SalesRank>string</SalesRank>
+              <!--Optional:-->
+              <SmallImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SmallImage>
+              <!--Optional:-->
+              <MediumImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </MediumImage>
+              <!--Optional:-->
+              <LargeImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </LargeImage>
+              <!--Zero or more repetitions:-->
+              <ImageSets>
+                <!--Optional:-->
+                <MerchantId>string</MerchantId>
+                <!--Zero or more repetitions:-->
+                <ImageSet Category="string">
+                  <!--Optional:-->
+                  <SwatchImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SwatchImage>
+                  <!--Optional:-->
+                  <SmallImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SmallImage>
+                  <!--Optional:-->
+                  <ThumbnailImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </ThumbnailImage>
+                  <!--Optional:-->
+                  <TinyImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </TinyImage>
+                  <!--Optional:-->
+                  <MediumImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </MediumImage>
+                  <!--Optional:-->
+                  <LargeImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </LargeImage>
+                </ImageSet>
+              </ImageSets>
+              <!--Optional:-->
+              <ItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Zero or more repetitions:-->
+                <Age>string</Age>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <AnalogVideoFormat>string</AnalogVideoFormat>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Zero or more repetitions:-->
+                <Category>string</Category>
+                <!--Zero or more repetitions:-->
+                <CategoryBin>string</CategoryBin>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Zero or more repetitions:-->
+                <Character>string</Character>
+                <!--Optional:-->
+                <CEROAgeRating>string</CEROAgeRating>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <ClubType>string</ClubType>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Zero or more repetitions:-->
+                <CompatibleDevices>string</CompatibleDevices>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Zero or more repetitions:-->
+                <DataLinkProtocol>string</DataLinkProtocol>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplayColorSupport>string</DisplayColorSupport>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Zero or more repetitions:-->
+                <EducationalFocus>string</EducationalFocus>
+                <!--Zero or more repetitions:-->
+                <Ethnicity>string</Ethnicity>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FilmColorType>string</FilmColorType>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FlavorName>string</FlavorName>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Zero or more repetitions:-->
+                <FormFactor>string</FormFactor>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Zero or more repetitions:-->
+                <GemTypeSetElement>string</GemTypeSetElement>
+                <!--Zero or more repetitions:-->
+                <Gender>string</Gender>
+                <!--Optional:-->
+                <Genre>string</Genre>
+                <!--Optional:-->
+                <GLProductGroup>string</GLProductGroup>
+                <!--Optional:-->
+                <GolfClubFlex>string</GolfClubFlex>
+                <!--Optional:-->
+                <GolfClubLoft>string</GolfClubLoft>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HandOrientation>string</HandOrientation>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">1000.00</HardDiskSize>
+                <!--Optional:-->
+                <HardDiskInterface>string</HardDiskInterface>
+                <!--Optional:-->
+                <HardwarePlatform>string</HardwarePlatform>
+                <!--Optional:-->
+                <HasAutoFocus>true</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>true</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>true</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>false</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>false</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>false</IncludesMp3Player>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Zero or more repetitions:-->
+                <IngredientsSetElement>string</IngredientsSetElement>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Zero or more repetitions:-->
+                <Interest>string</Interest>
+                <!--Optional:-->
+                <IsAdultProduct>true</IsAdultProduct>
+                <!--Optional:-->
+                <IsAutographed>true</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>true</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IsPreannounce>false</IsPreannounce>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Zero or more repetitions:-->
+                <LanguageName>string</LanguageName>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LensType>string</LensType>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Zero or more repetitions:-->
+                <MaterialTypeSetElement>string</MaterialTypeSetElement>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MediaType>string</MediaType>
+                <!--Optional:-->
+                <MemorySlotsAvailable>string</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OperatingSystem>string</OperatingSystem>
+                <!--Optional:-->
+                <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PackageQuantity>200</PackageQuantity>
+                <!--Zero or more repetitions:-->
+                <PantLength>string</PantLength>
+                <!--Zero or more repetitions:-->
+                <PantSize>string</PantSize>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Zero or more repetitions:-->
+                <PrimaryColor>string</PrimaryColor>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+                <!--Optional:-->
+                <ProductTypeName>string</ProductTypeName>
+                <!--Optional:-->
+                <ProductTypeSubcategory>string</ProductTypeSubcategory>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <RemovableStorage>string</RemovableStorage>
+                <!--Optional:-->
+                <RequiredVoltageRange>string</RequiredVoltageRange>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <RunningTime Units="string">1000.00</RunningTime>
+                <!--Optional:-->
+                <ScentName>string</ScentName>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <ShaftMaterialType>string</ShaftMaterialType>
+                <!--Zero or more repetitions:-->
+                <ShoeSize>string</ShoeSize>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <Style>string</Style>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SupportedMediaSize>string</SupportedMediaSize>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Zero or more repetitions:-->
+                <TargetBrand>string</TargetBrand>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WEEETaxValue>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </WEEETaxValue>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </ItemAttributes>
+              <!--Optional:-->
+              <MerchantItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CountryOfOrigin>string</CountryOfOrigin>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Optional:-->
+                <Customizable>string</Customizable>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <Description>string</Description>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Optional:-->
+                <FixedShippingCharge>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </FixedShippingCharge>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">200</HardDiskSize>
+                <!--Optional:-->
+                <HasAutoFocus>false</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>false</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>false</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>false</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>true</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>true</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Indications>string</Indications>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Optional:-->
+                <IsAutographed>true</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>false</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>true</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MemorySlotsAvailable>200</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Zero or more repetitions:-->
+                <PurchasingChannel>string</PurchasingChannel>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <SafetyWarning>string</SafetyWarning>
+                <!--Optional:-->
+                <SalesRestriction>string</SalesRestriction>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <VendorRebate>
+                  <!--Optional:-->
+                  <Type>string</Type>
+                  <!--Optional:-->
+                  <StartDate>string</StartDate>
+                  <!--Optional:-->
+                  <EndDate>string</EndDate>
+                </VendorRebate>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WebsiteBuyability>string</WebsiteBuyability>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </MerchantItemAttributes>
+              <!--Optional:-->
+              <Collections>
+                <!--Zero or more repetitions:-->
+                <Collection>
+                  <!--Optional:-->
+                  <CollectionSummary>
+                    <!--Optional:-->
+                    <LowestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestListPrice>
+                    <!--Optional:-->
+                    <HighestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestListPrice>
+                    <!--Optional:-->
+                    <LowestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestSalePrice>
+                    <!--Optional:-->
+                    <HighestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestSalePrice>
+                  </CollectionSummary>
+                  <!--Optional:-->
+                  <CollectionParent>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionParent>
+                  <!--Zero or more repetitions:-->
+                  <CollectionItem>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionItem>
+                </Collection>
+              </Collections>
+              <!--Optional:-->
+              <Subjects>
+                <!--Zero or more repetitions:-->
+                <Subject>string</Subject>
+              </Subjects>
+              <!--Optional:-->
+              <OfferSummary>
+                <!--Optional:-->
+                <LowestNewPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestNewPrice>
+                <!--Optional:-->
+                <LowestUsedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestUsedPrice>
+                <!--Optional:-->
+                <LowestCollectiblePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestCollectiblePrice>
+                <!--Optional:-->
+                <LowestRefurbishedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestRefurbishedPrice>
+                <!--Optional:-->
+                <TotalNew>string</TotalNew>
+                <!--Optional:-->
+                <TotalUsed>string</TotalUsed>
+                <!--Optional:-->
+                <TotalCollectible>string</TotalCollectible>
+                <!--Optional:-->
+                <TotalRefurbished>string</TotalRefurbished>
+              </OfferSummary>
+              <!--Optional:-->
+              <Offers>
+                <!--Optional:-->
+                <TotalOffers>200</TotalOffers>
+                <!--Optional:-->
+                <TotalOfferPages>200</TotalOfferPages>
+                <!--Zero or more repetitions:-->
+                <Offer>
+                  <!--Optional:-->
+                  <Merchant>
+                    <MerchantId>string</MerchantId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                  </Merchant>
+                  <!--Optional:-->
+                  <Seller>
+                    <SellerId>string</SellerId>
+                    <!--Optional:-->
+                    <SellerName>string</SellerName>
+                    <!--Optional:-->
+                    <SellerLegalName>string</SellerLegalName>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <About>string</About>
+                    <!--Optional:-->
+                    <MoreAbout>string</MoreAbout>
+                    <!--Optional:-->
+                    <Location>
+                      <!--Optional:-->
+                      <UserDefinedLocation>string</UserDefinedLocation>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </Location>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                    <!--Optional:-->
+                    <SellerFeedbackSummary>
+                      <!--Zero or more repetitions:-->
+                      <FeedbackDateRange Period="string">
+                        <!--Zero or more repetitions:-->
+                        <SellerFeedbackRating Type="string">
+                          <!--Optional:-->
+                          <Count>200</Count>
+                          <!--Optional:-->
+                          <Percentage>200</Percentage>
+                        </SellerFeedbackRating>
+                      </FeedbackDateRange>
+                    </SellerFeedbackSummary>
+                    <!--Optional:-->
+                    <SellerFeedback>
+                      <!--1 or more repetitions:-->
+                      <Feedback>
+                        <!--Optional:-->
+                        <Rating>200</Rating>
+                        <!--Optional:-->
+                        <Comment>string</Comment>
+                        <!--Optional:-->
+                        <Date>string</Date>
+                        <!--Optional:-->
+                        <RatedBy>string</RatedBy>
+                      </Feedback>
+                    </SellerFeedback>
+                  </Seller>
+                  <!--Optional:-->
+                  <OfferAttributes>
+                    <!--Optional:-->
+                    <Condition>string</Condition>
+                    <!--Optional:-->
+                    <SubCondition>string</SubCondition>
+                    <!--Optional:-->
+                    <ConditionNote>string</ConditionNote>
+                    <!--Optional:-->
+                    <WillShipExpedited>false</WillShipExpedited>
+                    <!--Optional:-->
+                    <WillShipInternational>false</WillShipInternational>
+                  </OfferAttributes>
+                  <!--Zero or more repetitions:-->
+                  <OfferListing>
+                    <!--Optional:-->
+                    <OfferListingId>string</OfferListingId>
+                    <!--Optional:-->
+                    <ExchangeId>string</ExchangeId>
+                    <!--Optional:-->
+                    <Price>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Price>
+                    <!--Optional:-->
+                    <SalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </SalePrice>
+                    <!--Optional:-->
+                    <AmountSaved>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </AmountSaved>
+                    <!--Optional:-->
+                    <PercentageSaved>200</PercentageSaved>
+                    <!--Optional:-->
+                    <Availability>string</Availability>
+                    <!--Optional:-->
+                    <AvailabilityAttributes>
+                      <!--Optional:-->
+                      <AvailabilityType>string</AvailabilityType>
+                      <!--Optional:-->
+                      <IsPreorder>false</IsPreorder>
+                      <!--Optional:-->
+                      <MinimumHours>100</MinimumHours>
+                      <!--Optional:-->
+                      <MaximumHours>100</MaximumHours>
+                    </AvailabilityAttributes>
+                    <!--Optional:-->
+                    <Quantity>100</Quantity>
+                    <!--Optional:-->
+                    <ISPUStoreAddress>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Address1>string</Address1>
+                      <!--Optional:-->
+                      <Address2>string</Address2>
+                      <!--Optional:-->
+                      <Address3>string</Address3>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <PostalCode>string</PostalCode>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </ISPUStoreAddress>
+                    <!--Optional:-->
+                    <ISPUStoreHours>string</ISPUStoreHours>
+                    <!--Optional:-->
+                    <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+                    <!--Optional:-->
+                    <SalesRestriction>string</SalesRestriction>
+                    <!--Zero or more repetitions:-->
+                    <ShippingCharge>
+                      <ShippingType>string</ShippingType>
+                      <ShippingPrice>
+                        <!--Optional:-->
+                        <Amount>100</Amount>
+                        <!--Optional:-->
+                        <CurrencyCode>string</CurrencyCode>
+                        <FormattedPrice>string</FormattedPrice>
+                      </ShippingPrice>
+                    </ShippingCharge>
+                  </OfferListing>
+                  <!--Optional:-->
+                  <LoyaltyPoints>
+                    <!--Optional:-->
+                    <Points>200</Points>
+                    <!--Optional:-->
+                    <TypicalRedemptionValue>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </TypicalRedemptionValue>
+                  </LoyaltyPoints>
+                  <!--Optional:-->
+                  <Promotions>
+                    <!--Zero or more repetitions:-->
+                    <Promotion>
+                      <!--Optional:-->
+                      <Summary>
+                        <PromotionId>string</PromotionId>
+                        <!--Optional:-->
+                        <Category>string</Category>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                        <!--Optional:-->
+                        <BenefitDescription>string</BenefitDescription>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                      </Summary>
+                      <!--Optional:-->
+                      <Details>
+                        <MerchantId>string</MerchantId>
+                        <OwningMerchantId>string</OwningMerchantId>
+                        <PromotionId>string</PromotionId>
+                        <PromotionCategory>string</PromotionCategory>
+                        <!--Optional:-->
+                        <MerchantPromotionId>string</MerchantPromotionId>
+                        <!--Optional:-->
+                        <GroupClaimCode>string</GroupClaimCode>
+                        <!--Optional:-->
+                        <CouponCombinationType>string</CouponCombinationType>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                        <!--Optional:-->
+                        <EligibilityRequirements>
+                          <!--Zero or more repetitions:-->
+                          <EligibilityRequirement>
+                            <EligibilityRequirementType>string</EligibilityRequirementType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <CurrencyAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </CurrencyAmount>
+                          </EligibilityRequirement>
+                        </EligibilityRequirements>
+                        <!--Optional:-->
+                        <Benefits>
+                          <!--Zero or more repetitions:-->
+                          <Benefit>
+                            <BenefitType>string</BenefitType>
+                            <ComponentType>string</ComponentType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <PercentOff>1.051732E7</PercentOff>
+                            <!--Optional:-->
+                            <FixedAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </FixedAmount>
+                            <!--Optional:-->
+                            <Ceiling>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </Ceiling>
+                          </Benefit>
+                        </Benefits>
+                        <!--Optional:-->
+                        <ItemApplicability>
+                          <ASIN>string</ASIN>
+                          <IsInBenefitSet>true</IsInBenefitSet>
+                          <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                        </ItemApplicability>
+                        <!--Optional:-->
+                        <MerchandisingMessage>string</MerchandisingMessage>
+                      </Details>
+                    </Promotion>
+                  </Promotions>
+                </Offer>
+              </Offers>
+              <!--Optional:-->
+              <VariationSummary>
+                <!--Optional:-->
+                <LowestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestPrice>
+                <!--Optional:-->
+                <HighestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestPrice>
+                <!--Optional:-->
+                <LowestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestSalePrice>
+                <!--Optional:-->
+                <HighestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestSalePrice>
+                <!--Optional:-->
+                <SingleMerchantId>string</SingleMerchantId>
+              </VariationSummary>
+              <!--Optional:-->
+              <Variations>
+                <!--Optional:-->
+                <TotalVariations>200</TotalVariations>
+                <!--Optional:-->
+                <TotalVariationPages>200</TotalVariationPages>
+                <!--Optional:-->
+                <VariationDimensions>
+                  <!--1 or more repetitions:-->
+                  <VariationDimension>string</VariationDimension>
+                </VariationDimensions>
+                <!--Zero or more repetitions:-->
+                <Item/>
+              </Variations>
+              <!--Optional:-->
+              <CustomerReviews>
+                <!--Optional:-->
+                <AverageRating>1000.00</AverageRating>
+                <!--Optional:-->
+                <TotalReviews>200</TotalReviews>
+                <!--Optional:-->
+                <TotalReviewPages>200</TotalReviewPages>
+                <!--Zero or more repetitions:-->
+                <Review>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Rating>1000.00</Rating>
+                  <!--Optional:-->
+                  <HelpfulVotes>200</HelpfulVotes>
+                  <!--Optional:-->
+                  <CustomerId>string</CustomerId>
+                  <!--Optional:-->
+                  <Reviewer>
+                    <!--Optional:-->
+                    <CustomerId>string</CustomerId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <Location>string</Location>
+                  </Reviewer>
+                  <!--Optional:-->
+                  <TotalVotes>200</TotalVotes>
+                  <!--Optional:-->
+                  <Date>string</Date>
+                  <!--Optional:-->
+                  <Summary>string</Summary>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                </Review>
+              </CustomerReviews>
+              <!--Optional:-->
+              <EditorialReviews>
+                <!--Zero or more repetitions:-->
+                <EditorialReview>
+                  <!--Optional:-->
+                  <Source>string</Source>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                  <!--Optional:-->
+                  <IsLinkSuppressed>false</IsLinkSuppressed>
+                </EditorialReview>
+              </EditorialReviews>
+              <!--Optional:-->
+              <SimilarProducts>
+                <!--1 or more repetitions:-->
+                <SimilarProduct>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </SimilarProduct>
+              </SimilarProducts>
+              <!--Optional:-->
+              <Accessories>
+                <!--1 or more repetitions:-->
+                <Accessory>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </Accessory>
+              </Accessories>
+              <!--Optional:-->
+              <Tracks>
+                <!--1 or more repetitions:-->
+                <Disc Number="201">
+                  <!--1 or more repetitions:-->
+                  <Track Number="201">string</Track>
+                </Disc>
+              </Tracks>
+              <!--Optional:-->
+              <BrowseNodes>
+                <!--Zero or more repetitions:-->
+                <BrowseNode>
+                  <!--Optional:-->
+                  <BrowseNodeId>string</BrowseNodeId>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <IsCategoryRoot>true</IsCategoryRoot>
+                  <!--Optional:-->
+                  <Properties>
+                    <!--1 or more repetitions:-->
+                    <Property>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Value>string</Value>
+                    </Property>
+                  </Properties>
+                  <!--Optional:-->
+                  <Children>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Children>
+                  <!--Optional:-->
+                  <Ancestors>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Ancestors>
+                  <!--Optional:-->
+                  <TopSellers>
+                    <!--1 or more repetitions:-->
+                    <TopSeller>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </TopSeller>
+                  </TopSellers>
+                  <!--Optional:-->
+                  <NewReleases>
+                    <!--1 or more repetitions:-->
+                    <NewRelease>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </NewRelease>
+                  </NewReleases>
+                </BrowseNode>
+              </BrowseNodes>
+              <!--Optional:-->
+              <SearchInside>
+                <!--Optional:-->
+                <TotalExcerpts>200</TotalExcerpts>
+                <!--Optional:-->
+                <Excerpt>
+                  <!--Optional:-->
+                  <Checksum>string</Checksum>
+                  <!--Optional:-->
+                  <PageType>string</PageType>
+                  <!--Optional:-->
+                  <!--Optional:-->
+                  <!--Optional:-->
+                </Excerpt>
+              </SearchInside>
+              <!--Optional:-->
+              <!--Optional:-->
+            </Item>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+    </Customer>
+  </Customers>
+</CustomerContentSearchResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/HelpResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/HelpResponse.xml
new file mode 100644
index 0000000..c66bb06
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/HelpResponse.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<HelpResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Information>
+    <!--Zero or more repetitions:-->
+    <OperationInformation>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <Description>string</Description>
+      <!--Optional:-->
+      <RequiredParameters>
+        <!--1 or more repetitions:-->
+        <Parameter>string</Parameter>
+      </RequiredParameters>
+      <!--Optional:-->
+      <AvailableParameters>
+        <!--1 or more repetitions:-->
+        <Parameter>string</Parameter>
+      </AvailableParameters>
+      <!--Optional:-->
+      <DefaultResponseGroups>
+        <!--1 or more repetitions:-->
+        <ResponseGroup>string</ResponseGroup>
+      </DefaultResponseGroups>
+      <!--Optional:-->
+      <AvailableResponseGroups>
+        <!--1 or more repetitions:-->
+        <ResponseGroup>string</ResponseGroup>
+      </AvailableResponseGroups>
+    </OperationInformation>
+    <!--Zero or more repetitions:-->
+    <ResponseGroupInformation>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <CreationDate>string</CreationDate>
+      <!--Optional:-->
+      <ValidOperations>
+        <!--1 or more repetitions:-->
+        <Operation>string</Operation>
+      </ValidOperations>
+      <!--Optional:-->
+      <Elements>
+        <!--1 or more repetitions:-->
+        <Element>string</Element>
+      </Elements>
+    </ResponseGroupInformation>
+  </Information>
+</HelpResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemLookupResponse.xml
new file mode 100644
index 0000000..e47a897
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemLookupResponse.xml
@@ -0,0 +1,2079 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Items>
+    <!--Optional:-->
+    <CorrectedQuery>
+      <!--Optional:-->
+      <Keywords>string</Keywords>
+      <!--Optional:-->
+      <Message>string</Message>
+    </CorrectedQuery>
+    <!--Optional:-->
+    <Qid>string</Qid>
+    <!--Optional:-->
+    <EngineQuery>string</EngineQuery>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Optional:-->
+    <SearchResultsMap>
+      <!--1 or more repetitions:-->
+      <SearchIndex>
+        <IndexName>string</IndexName>
+        <!--Optional:-->
+        <Results>200</Results>
+        <!--Optional:-->
+        <Pages>200</Pages>
+        <!--Optional:-->
+        <CorrectedQuery>
+          <!--Optional:-->
+          <Keywords>string</Keywords>
+          <!--Optional:-->
+          <Message>string</Message>
+        </CorrectedQuery>
+        <RelevanceRank>201</RelevanceRank>
+        <!--1 or more repetitions:-->
+        <ASIN>string</ASIN>
+      </SearchIndex>
+    </SearchResultsMap>
+    <!--Zero or more repetitions:-->
+    <Item>
+      <!--Optional:-->
+      <AlternateVersions>
+        <!--Zero or more repetitions:-->
+        <AlternateVersion>
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+          <!--Optional:-->
+          <Binding>string</Binding>
+        </AlternateVersion>
+      </AlternateVersions>
+      <ASIN>string</ASIN>
+      <!--Optional:-->
+      <ParentASIN>string</ParentASIN>
+      <!--Optional:-->
+      <DetailPageURL>string</DetailPageURL>
+      <!--Optional:-->
+      <SalesRank>string</SalesRank>
+      <!--Optional:-->
+      <SmallImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </SmallImage>
+      <!--Optional:-->
+      <MediumImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </MediumImage>
+      <!--Optional:-->
+      <LargeImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </LargeImage>
+      <!--Zero or more repetitions:-->
+      <ImageSets>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Zero or more repetitions:-->
+        <ImageSet Category="string">
+          <!--Optional:-->
+          <SwatchImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SwatchImage>
+          <!--Optional:-->
+          <SmallImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SmallImage>
+          <!--Optional:-->
+          <ThumbnailImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </ThumbnailImage>
+          <!--Optional:-->
+          <TinyImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </TinyImage>
+          <!--Optional:-->
+          <MediumImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </MediumImage>
+          <!--Optional:-->
+          <LargeImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </LargeImage>
+        </ImageSet>
+      </ImageSets>
+      <!--Optional:-->
+      <ItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Zero or more repetitions:-->
+        <Age>string</Age>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <AnalogVideoFormat>string</AnalogVideoFormat>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Zero or more repetitions:-->
+        <Category>string</Category>
+        <!--Zero or more repetitions:-->
+        <CategoryBin>string</CategoryBin>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Zero or more repetitions:-->
+        <Character>string</Character>
+        <!--Optional:-->
+        <CEROAgeRating>string</CEROAgeRating>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <ClubType>string</ClubType>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Zero or more repetitions:-->
+        <CompatibleDevices>string</CompatibleDevices>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Zero or more repetitions:-->
+        <DataLinkProtocol>string</DataLinkProtocol>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplayColorSupport>string</DisplayColorSupport>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Zero or more repetitions:-->
+        <EducationalFocus>string</EducationalFocus>
+        <!--Zero or more repetitions:-->
+        <Ethnicity>string</Ethnicity>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FilmColorType>string</FilmColorType>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FlavorName>string</FlavorName>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Zero or more repetitions:-->
+        <FormFactor>string</FormFactor>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Zero or more repetitions:-->
+        <GemTypeSetElement>string</GemTypeSetElement>
+        <!--Zero or more repetitions:-->
+        <Gender>string</Gender>
+        <!--Optional:-->
+        <Genre>string</Genre>
+        <!--Optional:-->
+        <GLProductGroup>string</GLProductGroup>
+        <!--Optional:-->
+        <GolfClubFlex>string</GolfClubFlex>
+        <!--Optional:-->
+        <GolfClubLoft>string</GolfClubLoft>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HandOrientation>string</HandOrientation>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">1000.00</HardDiskSize>
+        <!--Optional:-->
+        <HardDiskInterface>string</HardDiskInterface>
+        <!--Optional:-->
+        <HardwarePlatform>string</HardwarePlatform>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>true</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>true</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>true</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>true</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>false</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>false</IncludesMp3Player>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Zero or more repetitions:-->
+        <IngredientsSetElement>string</IngredientsSetElement>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Zero or more repetitions:-->
+        <Interest>string</Interest>
+        <!--Optional:-->
+        <IsAdultProduct>false</IsAdultProduct>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>true</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IsPreannounce>false</IsPreannounce>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Zero or more repetitions:-->
+        <LanguageName>string</LanguageName>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LensType>string</LensType>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Zero or more repetitions:-->
+        <MaterialTypeSetElement>string</MaterialTypeSetElement>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MediaType>string</MediaType>
+        <!--Optional:-->
+        <MemorySlotsAvailable>string</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OperatingSystem>string</OperatingSystem>
+        <!--Optional:-->
+        <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PackageQuantity>200</PackageQuantity>
+        <!--Zero or more repetitions:-->
+        <PantLength>string</PantLength>
+        <!--Zero or more repetitions:-->
+        <PantSize>string</PantSize>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Zero or more repetitions:-->
+        <PrimaryColor>string</PrimaryColor>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+        <!--Optional:-->
+        <ProductTypeName>string</ProductTypeName>
+        <!--Optional:-->
+        <ProductTypeSubcategory>string</ProductTypeSubcategory>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <RemovableStorage>string</RemovableStorage>
+        <!--Optional:-->
+        <RequiredVoltageRange>string</RequiredVoltageRange>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <RunningTime Units="string">1000.00</RunningTime>
+        <!--Optional:-->
+        <ScentName>string</ScentName>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <ShaftMaterialType>string</ShaftMaterialType>
+        <!--Zero or more repetitions:-->
+        <ShoeSize>string</ShoeSize>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <Style>string</Style>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SupportedMediaSize>string</SupportedMediaSize>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Zero or more repetitions:-->
+        <TargetBrand>string</TargetBrand>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WEEETaxValue>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </WEEETaxValue>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </ItemAttributes>
+      <!--Optional:-->
+      <MerchantItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CountryOfOrigin>string</CountryOfOrigin>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Optional:-->
+        <Customizable>string</Customizable>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <Description>string</Description>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Optional:-->
+        <FixedShippingCharge>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </FixedShippingCharge>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">200</HardDiskSize>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>false</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>false</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>false</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>false</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>true</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>true</IncludesMp3Player>
+        <!--Optional:-->
+        <Indications>string</Indications>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>false</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MemorySlotsAvailable>200</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Zero or more repetitions:-->
+        <PurchasingChannel>string</PurchasingChannel>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <SafetyWarning>string</SafetyWarning>
+        <!--Optional:-->
+        <SalesRestriction>string</SalesRestriction>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <VendorRebate>
+          <!--Optional:-->
+          <Type>string</Type>
+          <!--Optional:-->
+          <StartDate>string</StartDate>
+          <!--Optional:-->
+          <EndDate>string</EndDate>
+        </VendorRebate>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WebsiteBuyability>string</WebsiteBuyability>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </MerchantItemAttributes>
+      <!--Optional:-->
+      <Collections>
+        <!--Zero or more repetitions:-->
+        <Collection>
+          <!--Optional:-->
+          <CollectionSummary>
+            <!--Optional:-->
+            <LowestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestListPrice>
+            <!--Optional:-->
+            <HighestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestListPrice>
+            <!--Optional:-->
+            <LowestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestSalePrice>
+            <!--Optional:-->
+            <HighestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestSalePrice>
+          </CollectionSummary>
+          <!--Optional:-->
+          <CollectionParent>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionParent>
+          <!--Zero or more repetitions:-->
+          <CollectionItem>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionItem>
+        </Collection>
+      </Collections>
+      <!--Optional:-->
+      <Subjects>
+        <!--Zero or more repetitions:-->
+        <Subject>string</Subject>
+      </Subjects>
+      <!--Optional:-->
+      <OfferSummary>
+        <!--Optional:-->
+        <LowestNewPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestNewPrice>
+        <!--Optional:-->
+        <LowestUsedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestUsedPrice>
+        <!--Optional:-->
+        <LowestCollectiblePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestCollectiblePrice>
+        <!--Optional:-->
+        <LowestRefurbishedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestRefurbishedPrice>
+        <!--Optional:-->
+        <TotalNew>string</TotalNew>
+        <!--Optional:-->
+        <TotalUsed>string</TotalUsed>
+        <!--Optional:-->
+        <TotalCollectible>string</TotalCollectible>
+        <!--Optional:-->
+        <TotalRefurbished>string</TotalRefurbished>
+      </OfferSummary>
+      <!--Optional:-->
+      <Offers>
+        <!--Optional:-->
+        <TotalOffers>200</TotalOffers>
+        <!--Optional:-->
+        <TotalOfferPages>200</TotalOfferPages>
+        <!--Zero or more repetitions:-->
+        <Offer>
+          <!--Optional:-->
+          <Merchant>
+            <MerchantId>string</MerchantId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+          </Merchant>
+          <!--Optional:-->
+          <Seller>
+            <SellerId>string</SellerId>
+            <!--Optional:-->
+            <SellerName>string</SellerName>
+            <!--Optional:-->
+            <SellerLegalName>string</SellerLegalName>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <About>string</About>
+            <!--Optional:-->
+            <MoreAbout>string</MoreAbout>
+            <!--Optional:-->
+            <Location>
+              <!--Optional:-->
+              <UserDefinedLocation>string</UserDefinedLocation>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <Country>string</Country>
+            </Location>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+            <!--Optional:-->
+            <SellerFeedbackSummary>
+              <!--Zero or more repetitions:-->
+              <FeedbackDateRange Period="string">
+                <!--Zero or more repetitions:-->
+                <SellerFeedbackRating Type="string">
+                  <!--Optional:-->
+                  <Count>200</Count>
+                  <!--Optional:-->
+                  <Percentage>200</Percentage>
+                </SellerFeedbackRating>
+              </FeedbackDateRange>
+            </SellerFeedbackSummary>
+            <!--Optional:-->
+            <SellerFeedback>
+              <!--1 or more repetitions:-->
+              <Feedback>
+                <!--Optional:-->
+                <Rating>200</Rating>
+                <!--Optional:-->
+                <Comment>string</Comment>
+                <!--Optional:-->
+                <Date>string</Date>
+                <!--Optional:-->
+                <RatedBy>string</RatedBy>
+              </Feedback>
+            </SellerFeedback>
+          </Seller>
+          <!--Optional:-->
+          <OfferAttributes>
+            <!--Optional:-->
+            <Condition>string</Condition>
+            <!--Optional:-->
+            <SubCondition>string</SubCondition>
+            <!--Optional:-->
+            <ConditionNote>string</ConditionNote>
+            <!--Optional:-->
+            <WillShipExpedited>true</WillShipExpedited>
+            <!--Optional:-->
+            <WillShipInternational>false</WillShipInternational>
+          </OfferAttributes>
+          <!--Zero or more repetitions:-->
+          <OfferListing>
+            <!--Optional:-->
+            <OfferListingId>string</OfferListingId>
+            <!--Optional:-->
+            <ExchangeId>string</ExchangeId>
+            <!--Optional:-->
+            <Price>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </Price>
+            <!--Optional:-->
+            <SalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </SalePrice>
+            <!--Optional:-->
+            <AmountSaved>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </AmountSaved>
+            <!--Optional:-->
+            <PercentageSaved>200</PercentageSaved>
+            <!--Optional:-->
+            <Availability>string</Availability>
+            <!--Optional:-->
+            <AvailabilityAttributes>
+              <!--Optional:-->
+              <AvailabilityType>string</AvailabilityType>
+              <!--Optional:-->
+              <IsPreorder>false</IsPreorder>
+              <!--Optional:-->
+              <MinimumHours>100</MinimumHours>
+              <!--Optional:-->
+              <MaximumHours>100</MaximumHours>
+            </AvailabilityAttributes>
+            <!--Optional:-->
+            <Quantity>100</Quantity>
+            <!--Optional:-->
+            <ISPUStoreAddress>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Address1>string</Address1>
+              <!--Optional:-->
+              <Address2>string</Address2>
+              <!--Optional:-->
+              <Address3>string</Address3>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <PostalCode>string</PostalCode>
+              <!--Optional:-->
+              <Country>string</Country>
+            </ISPUStoreAddress>
+            <!--Optional:-->
+            <ISPUStoreHours>string</ISPUStoreHours>
+            <!--Optional:-->
+            <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+            <!--Optional:-->
+            <SalesRestriction>string</SalesRestriction>
+            <!--Zero or more repetitions:-->
+            <ShippingCharge>
+              <ShippingType>string</ShippingType>
+              <ShippingPrice>
+                <!--Optional:-->
+                <Amount>100</Amount>
+                <!--Optional:-->
+                <CurrencyCode>string</CurrencyCode>
+                <FormattedPrice>string</FormattedPrice>
+              </ShippingPrice>
+            </ShippingCharge>
+          </OfferListing>
+          <!--Optional:-->
+          <LoyaltyPoints>
+            <!--Optional:-->
+            <Points>200</Points>
+            <!--Optional:-->
+            <TypicalRedemptionValue>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </TypicalRedemptionValue>
+          </LoyaltyPoints>
+          <!--Optional:-->
+          <Promotions>
+            <!--Zero or more repetitions:-->
+            <Promotion>
+              <!--Optional:-->
+              <Summary>
+                <PromotionId>string</PromotionId>
+                <!--Optional:-->
+                <Category>string</Category>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                <!--Optional:-->
+                <BenefitDescription>string</BenefitDescription>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+              </Summary>
+              <!--Optional:-->
+              <Details>
+                <MerchantId>string</MerchantId>
+                <OwningMerchantId>string</OwningMerchantId>
+                <PromotionId>string</PromotionId>
+                <PromotionCategory>string</PromotionCategory>
+                <!--Optional:-->
+                <MerchantPromotionId>string</MerchantPromotionId>
+                <!--Optional:-->
+                <GroupClaimCode>string</GroupClaimCode>
+                <!--Optional:-->
+                <CouponCombinationType>string</CouponCombinationType>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+                <!--Optional:-->
+                <EligibilityRequirements>
+                  <!--Zero or more repetitions:-->
+                  <EligibilityRequirement>
+                    <EligibilityRequirementType>string</EligibilityRequirementType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <CurrencyAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </CurrencyAmount>
+                  </EligibilityRequirement>
+                </EligibilityRequirements>
+                <!--Optional:-->
+                <Benefits>
+                  <!--Zero or more repetitions:-->
+                  <Benefit>
+                    <BenefitType>string</BenefitType>
+                    <ComponentType>string</ComponentType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <PercentOff>1.051732E7</PercentOff>
+                    <!--Optional:-->
+                    <FixedAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </FixedAmount>
+                    <!--Optional:-->
+                    <Ceiling>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Ceiling>
+                  </Benefit>
+                </Benefits>
+                <!--Optional:-->
+                <ItemApplicability>
+                  <ASIN>string</ASIN>
+                  <IsInBenefitSet>false</IsInBenefitSet>
+                  <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                </ItemApplicability>
+                <!--Optional:-->
+                <MerchandisingMessage>string</MerchandisingMessage>
+              </Details>
+            </Promotion>
+          </Promotions>
+        </Offer>
+      </Offers>
+      <!--Optional:-->
+      <VariationSummary>
+        <!--Optional:-->
+        <LowestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestPrice>
+        <!--Optional:-->
+        <HighestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestPrice>
+        <!--Optional:-->
+        <LowestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestSalePrice>
+        <!--Optional:-->
+        <HighestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestSalePrice>
+        <!--Optional:-->
+        <SingleMerchantId>string</SingleMerchantId>
+      </VariationSummary>
+      <!--Optional:-->
+      <Variations>
+        <!--Optional:-->
+        <TotalVariations>200</TotalVariations>
+        <!--Optional:-->
+        <TotalVariationPages>200</TotalVariationPages>
+        <!--Optional:-->
+        <VariationDimensions>
+          <!--1 or more repetitions:-->
+          <VariationDimension>string</VariationDimension>
+        </VariationDimensions>
+        <!--Zero or more repetitions:-->
+        <Item/>
+      </Variations>
+      <!--Optional:-->
+      <CustomerReviews>
+        <!--Optional:-->
+        <AverageRating>1000.00</AverageRating>
+        <!--Optional:-->
+        <TotalReviews>200</TotalReviews>
+        <!--Optional:-->
+        <TotalReviewPages>200</TotalReviewPages>
+        <!--Zero or more repetitions:-->
+        <Review>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Rating>1000.00</Rating>
+          <!--Optional:-->
+          <HelpfulVotes>200</HelpfulVotes>
+          <!--Optional:-->
+          <CustomerId>string</CustomerId>
+          <!--Optional:-->
+          <Reviewer>
+            <!--Optional:-->
+            <CustomerId>string</CustomerId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <Location>string</Location>
+          </Reviewer>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <Summary>string</Summary>
+          <!--Optional:-->
+          <Content>string</Content>
+        </Review>
+      </CustomerReviews>
+      <!--Optional:-->
+      <EditorialReviews>
+        <!--Zero or more repetitions:-->
+        <EditorialReview>
+          <!--Optional:-->
+          <Source>string</Source>
+          <!--Optional:-->
+          <Content>string</Content>
+          <!--Optional:-->
+          <IsLinkSuppressed>true</IsLinkSuppressed>
+        </EditorialReview>
+      </EditorialReviews>
+      <!--Optional:-->
+      <SimilarProducts>
+        <!--1 or more repetitions:-->
+        <SimilarProduct>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </SimilarProduct>
+      </SimilarProducts>
+      <!--Optional:-->
+      <Accessories>
+        <!--1 or more repetitions:-->
+        <Accessory>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </Accessory>
+      </Accessories>
+      <!--Optional:-->
+      <Tracks>
+        <!--1 or more repetitions:-->
+        <Disc Number="201">
+          <!--1 or more repetitions:-->
+          <Track Number="201">string</Track>
+        </Disc>
+      </Tracks>
+      <!--Optional:-->
+      <BrowseNodes>
+        <!--Zero or more repetitions:-->
+        <BrowseNode>
+          <!--Optional:-->
+          <BrowseNodeId>string</BrowseNodeId>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <IsCategoryRoot>false</IsCategoryRoot>
+          <!--Optional:-->
+          <Properties>
+            <!--1 or more repetitions:-->
+            <Property>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Value>string</Value>
+            </Property>
+          </Properties>
+          <!--Optional:-->
+          <Children>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Children>
+          <!--Optional:-->
+          <Ancestors>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Ancestors>
+          <!--Optional:-->
+          <TopSellers>
+            <!--1 or more repetitions:-->
+            <TopSeller>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </TopSeller>
+          </TopSellers>
+          <!--Optional:-->
+          <NewReleases>
+            <!--1 or more repetitions:-->
+            <NewRelease>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </NewRelease>
+          </NewReleases>
+        </BrowseNode>
+      </BrowseNodes>
+      <!--Optional:-->
+      <SearchInside>
+        <!--Optional:-->
+        <TotalExcerpts>200</TotalExcerpts>
+        <!--Optional:-->
+        <Excerpt>
+          <!--Optional:-->
+          <Checksum>string</Checksum>
+          <!--Optional:-->
+          <PageType>string</PageType>
+          <!--Optional:-->
+          <PageNumber>string</PageNumber>
+          <!--Optional:-->
+          <SequenceNumber>string</SequenceNumber>
+          <!--Optional:-->
+          <Text>string</Text>
+        </Excerpt>
+      </SearchInside>
+      <!--Optional:-->
+      <ListmaniaLists>
+        <!--1 or more repetitions:-->
+        <ListmaniaList>
+          <ListId>string</ListId>
+          <!--Optional:-->
+          <ListName>string</ListName>
+        </ListmaniaList>
+      </ListmaniaLists>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>Item</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item/>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <TaggedListmaniaLists>
+            <!--Optional:-->
+            <List>
+              <ListId>string</ListId>
+              <!--Optional:-->
+              <ListURL>string</ListURL>
+              <!--Optional:-->
+              <RegistryNumber>string</RegistryNumber>
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Zero or more repetitions:-->
+            </List>
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+          </TaggedListmaniaLists>
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+    </Item>
+    <!--Optional:-->
+  </Items>
+</ItemLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemSearchResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemSearchResponse.xml
new file mode 100644
index 0000000..3095ed0
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ItemSearchResponse.xml
@@ -0,0 +1,2079 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Items>
+    <!--Optional:-->
+    <CorrectedQuery>
+      <!--Optional:-->
+      <Keywords>string</Keywords>
+      <!--Optional:-->
+      <Message>string</Message>
+    </CorrectedQuery>
+    <!--Optional:-->
+    <Qid>string</Qid>
+    <!--Optional:-->
+    <EngineQuery>string</EngineQuery>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Optional:-->
+    <SearchResultsMap>
+      <!--1 or more repetitions:-->
+      <SearchIndex>
+        <IndexName>string</IndexName>
+        <!--Optional:-->
+        <Results>200</Results>
+        <!--Optional:-->
+        <Pages>200</Pages>
+        <!--Optional:-->
+        <CorrectedQuery>
+          <!--Optional:-->
+          <Keywords>string</Keywords>
+          <!--Optional:-->
+          <Message>string</Message>
+        </CorrectedQuery>
+        <RelevanceRank>201</RelevanceRank>
+        <!--1 or more repetitions:-->
+        <ASIN>string</ASIN>
+      </SearchIndex>
+    </SearchResultsMap>
+    <!--Zero or more repetitions:-->
+    <Item>
+      <!--Optional:-->
+      <AlternateVersions>
+        <!--Zero or more repetitions:-->
+        <AlternateVersion>
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+          <!--Optional:-->
+          <Binding>string</Binding>
+        </AlternateVersion>
+      </AlternateVersions>
+      <ASIN>string</ASIN>
+      <!--Optional:-->
+      <ParentASIN>string</ParentASIN>
+      <!--Optional:-->
+      <DetailPageURL>string</DetailPageURL>
+      <!--Optional:-->
+      <SalesRank>string</SalesRank>
+      <!--Optional:-->
+      <SmallImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </SmallImage>
+      <!--Optional:-->
+      <MediumImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </MediumImage>
+      <!--Optional:-->
+      <LargeImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </LargeImage>
+      <!--Zero or more repetitions:-->
+      <ImageSets>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Zero or more repetitions:-->
+        <ImageSet Category="string">
+          <!--Optional:-->
+          <SwatchImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SwatchImage>
+          <!--Optional:-->
+          <SmallImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SmallImage>
+          <!--Optional:-->
+          <ThumbnailImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </ThumbnailImage>
+          <!--Optional:-->
+          <TinyImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </TinyImage>
+          <!--Optional:-->
+          <MediumImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </MediumImage>
+          <!--Optional:-->
+          <LargeImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </LargeImage>
+        </ImageSet>
+      </ImageSets>
+      <!--Optional:-->
+      <ItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Zero or more repetitions:-->
+        <Age>string</Age>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <AnalogVideoFormat>string</AnalogVideoFormat>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Zero or more repetitions:-->
+        <Category>string</Category>
+        <!--Zero or more repetitions:-->
+        <CategoryBin>string</CategoryBin>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Zero or more repetitions:-->
+        <Character>string</Character>
+        <!--Optional:-->
+        <CEROAgeRating>string</CEROAgeRating>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <ClubType>string</ClubType>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Zero or more repetitions:-->
+        <CompatibleDevices>string</CompatibleDevices>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Zero or more repetitions:-->
+        <DataLinkProtocol>string</DataLinkProtocol>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplayColorSupport>string</DisplayColorSupport>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Zero or more repetitions:-->
+        <EducationalFocus>string</EducationalFocus>
+        <!--Zero or more repetitions:-->
+        <Ethnicity>string</Ethnicity>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FilmColorType>string</FilmColorType>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FlavorName>string</FlavorName>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Zero or more repetitions:-->
+        <FormFactor>string</FormFactor>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Zero or more repetitions:-->
+        <GemTypeSetElement>string</GemTypeSetElement>
+        <!--Zero or more repetitions:-->
+        <Gender>string</Gender>
+        <!--Optional:-->
+        <Genre>string</Genre>
+        <!--Optional:-->
+        <GLProductGroup>string</GLProductGroup>
+        <!--Optional:-->
+        <GolfClubFlex>string</GolfClubFlex>
+        <!--Optional:-->
+        <GolfClubLoft>string</GolfClubLoft>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HandOrientation>string</HandOrientation>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">1000.00</HardDiskSize>
+        <!--Optional:-->
+        <HardDiskInterface>string</HardDiskInterface>
+        <!--Optional:-->
+        <HardwarePlatform>string</HardwarePlatform>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>true</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>true</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>true</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>true</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>false</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>false</IncludesMp3Player>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Zero or more repetitions:-->
+        <IngredientsSetElement>string</IngredientsSetElement>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Zero or more repetitions:-->
+        <Interest>string</Interest>
+        <!--Optional:-->
+        <IsAdultProduct>false</IsAdultProduct>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>true</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IsPreannounce>false</IsPreannounce>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Zero or more repetitions:-->
+        <LanguageName>string</LanguageName>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LensType>string</LensType>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Zero or more repetitions:-->
+        <MaterialTypeSetElement>string</MaterialTypeSetElement>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MediaType>string</MediaType>
+        <!--Optional:-->
+        <MemorySlotsAvailable>string</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OperatingSystem>string</OperatingSystem>
+        <!--Optional:-->
+        <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PackageQuantity>200</PackageQuantity>
+        <!--Zero or more repetitions:-->
+        <PantLength>string</PantLength>
+        <!--Zero or more repetitions:-->
+        <PantSize>string</PantSize>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Zero or more repetitions:-->
+        <PrimaryColor>string</PrimaryColor>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+        <!--Optional:-->
+        <ProductTypeName>string</ProductTypeName>
+        <!--Optional:-->
+        <ProductTypeSubcategory>string</ProductTypeSubcategory>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <RemovableStorage>string</RemovableStorage>
+        <!--Optional:-->
+        <RequiredVoltageRange>string</RequiredVoltageRange>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <RunningTime Units="string">1000.00</RunningTime>
+        <!--Optional:-->
+        <ScentName>string</ScentName>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <ShaftMaterialType>string</ShaftMaterialType>
+        <!--Zero or more repetitions:-->
+        <ShoeSize>string</ShoeSize>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <Style>string</Style>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SupportedMediaSize>string</SupportedMediaSize>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Zero or more repetitions:-->
+        <TargetBrand>string</TargetBrand>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WEEETaxValue>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </WEEETaxValue>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </ItemAttributes>
+      <!--Optional:-->
+      <MerchantItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CountryOfOrigin>string</CountryOfOrigin>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Optional:-->
+        <Customizable>string</Customizable>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <Description>string</Description>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Optional:-->
+        <FixedShippingCharge>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </FixedShippingCharge>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">200</HardDiskSize>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>false</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>false</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>false</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>false</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>true</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>true</IncludesMp3Player>
+        <!--Optional:-->
+        <Indications>string</Indications>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>false</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MemorySlotsAvailable>200</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Zero or more repetitions:-->
+        <PurchasingChannel>string</PurchasingChannel>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <SafetyWarning>string</SafetyWarning>
+        <!--Optional:-->
+        <SalesRestriction>string</SalesRestriction>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <VendorRebate>
+          <!--Optional:-->
+          <Type>string</Type>
+          <!--Optional:-->
+          <StartDate>string</StartDate>
+          <!--Optional:-->
+          <EndDate>string</EndDate>
+        </VendorRebate>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WebsiteBuyability>string</WebsiteBuyability>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </MerchantItemAttributes>
+      <!--Optional:-->
+      <Collections>
+        <!--Zero or more repetitions:-->
+        <Collection>
+          <!--Optional:-->
+          <CollectionSummary>
+            <!--Optional:-->
+            <LowestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestListPrice>
+            <!--Optional:-->
+            <HighestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestListPrice>
+            <!--Optional:-->
+            <LowestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestSalePrice>
+            <!--Optional:-->
+            <HighestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestSalePrice>
+          </CollectionSummary>
+          <!--Optional:-->
+          <CollectionParent>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionParent>
+          <!--Zero or more repetitions:-->
+          <CollectionItem>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionItem>
+        </Collection>
+      </Collections>
+      <!--Optional:-->
+      <Subjects>
+        <!--Zero or more repetitions:-->
+        <Subject>string</Subject>
+      </Subjects>
+      <!--Optional:-->
+      <OfferSummary>
+        <!--Optional:-->
+        <LowestNewPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestNewPrice>
+        <!--Optional:-->
+        <LowestUsedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestUsedPrice>
+        <!--Optional:-->
+        <LowestCollectiblePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestCollectiblePrice>
+        <!--Optional:-->
+        <LowestRefurbishedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestRefurbishedPrice>
+        <!--Optional:-->
+        <TotalNew>string</TotalNew>
+        <!--Optional:-->
+        <TotalUsed>string</TotalUsed>
+        <!--Optional:-->
+        <TotalCollectible>string</TotalCollectible>
+        <!--Optional:-->
+        <TotalRefurbished>string</TotalRefurbished>
+      </OfferSummary>
+      <!--Optional:-->
+      <Offers>
+        <!--Optional:-->
+        <TotalOffers>200</TotalOffers>
+        <!--Optional:-->
+        <TotalOfferPages>200</TotalOfferPages>
+        <!--Zero or more repetitions:-->
+        <Offer>
+          <!--Optional:-->
+          <Merchant>
+            <MerchantId>string</MerchantId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+          </Merchant>
+          <!--Optional:-->
+          <Seller>
+            <SellerId>string</SellerId>
+            <!--Optional:-->
+            <SellerName>string</SellerName>
+            <!--Optional:-->
+            <SellerLegalName>string</SellerLegalName>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <About>string</About>
+            <!--Optional:-->
+            <MoreAbout>string</MoreAbout>
+            <!--Optional:-->
+            <Location>
+              <!--Optional:-->
+              <UserDefinedLocation>string</UserDefinedLocation>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <Country>string</Country>
+            </Location>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+            <!--Optional:-->
+            <SellerFeedbackSummary>
+              <!--Zero or more repetitions:-->
+              <FeedbackDateRange Period="string">
+                <!--Zero or more repetitions:-->
+                <SellerFeedbackRating Type="string">
+                  <!--Optional:-->
+                  <Count>200</Count>
+                  <!--Optional:-->
+                  <Percentage>200</Percentage>
+                </SellerFeedbackRating>
+              </FeedbackDateRange>
+            </SellerFeedbackSummary>
+            <!--Optional:-->
+            <SellerFeedback>
+              <!--1 or more repetitions:-->
+              <Feedback>
+                <!--Optional:-->
+                <Rating>200</Rating>
+                <!--Optional:-->
+                <Comment>string</Comment>
+                <!--Optional:-->
+                <Date>string</Date>
+                <!--Optional:-->
+                <RatedBy>string</RatedBy>
+              </Feedback>
+            </SellerFeedback>
+          </Seller>
+          <!--Optional:-->
+          <OfferAttributes>
+            <!--Optional:-->
+            <Condition>string</Condition>
+            <!--Optional:-->
+            <SubCondition>string</SubCondition>
+            <!--Optional:-->
+            <ConditionNote>string</ConditionNote>
+            <!--Optional:-->
+            <WillShipExpedited>true</WillShipExpedited>
+            <!--Optional:-->
+            <WillShipInternational>false</WillShipInternational>
+          </OfferAttributes>
+          <!--Zero or more repetitions:-->
+          <OfferListing>
+            <!--Optional:-->
+            <OfferListingId>string</OfferListingId>
+            <!--Optional:-->
+            <ExchangeId>string</ExchangeId>
+            <!--Optional:-->
+            <Price>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </Price>
+            <!--Optional:-->
+            <SalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </SalePrice>
+            <!--Optional:-->
+            <AmountSaved>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </AmountSaved>
+            <!--Optional:-->
+            <PercentageSaved>200</PercentageSaved>
+            <!--Optional:-->
+            <Availability>string</Availability>
+            <!--Optional:-->
+            <AvailabilityAttributes>
+              <!--Optional:-->
+              <AvailabilityType>string</AvailabilityType>
+              <!--Optional:-->
+              <IsPreorder>false</IsPreorder>
+              <!--Optional:-->
+              <MinimumHours>100</MinimumHours>
+              <!--Optional:-->
+              <MaximumHours>100</MaximumHours>
+            </AvailabilityAttributes>
+            <!--Optional:-->
+            <Quantity>100</Quantity>
+            <!--Optional:-->
+            <ISPUStoreAddress>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Address1>string</Address1>
+              <!--Optional:-->
+              <Address2>string</Address2>
+              <!--Optional:-->
+              <Address3>string</Address3>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <PostalCode>string</PostalCode>
+              <!--Optional:-->
+              <Country>string</Country>
+            </ISPUStoreAddress>
+            <!--Optional:-->
+            <ISPUStoreHours>string</ISPUStoreHours>
+            <!--Optional:-->
+            <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+            <!--Optional:-->
+            <SalesRestriction>string</SalesRestriction>
+            <!--Zero or more repetitions:-->
+            <ShippingCharge>
+              <ShippingType>string</ShippingType>
+              <ShippingPrice>
+                <!--Optional:-->
+                <Amount>100</Amount>
+                <!--Optional:-->
+                <CurrencyCode>string</CurrencyCode>
+                <FormattedPrice>string</FormattedPrice>
+              </ShippingPrice>
+            </ShippingCharge>
+          </OfferListing>
+          <!--Optional:-->
+          <LoyaltyPoints>
+            <!--Optional:-->
+            <Points>200</Points>
+            <!--Optional:-->
+            <TypicalRedemptionValue>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </TypicalRedemptionValue>
+          </LoyaltyPoints>
+          <!--Optional:-->
+          <Promotions>
+            <!--Zero or more repetitions:-->
+            <Promotion>
+              <!--Optional:-->
+              <Summary>
+                <PromotionId>string</PromotionId>
+                <!--Optional:-->
+                <Category>string</Category>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                <!--Optional:-->
+                <BenefitDescription>string</BenefitDescription>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+              </Summary>
+              <!--Optional:-->
+              <Details>
+                <MerchantId>string</MerchantId>
+                <OwningMerchantId>string</OwningMerchantId>
+                <PromotionId>string</PromotionId>
+                <PromotionCategory>string</PromotionCategory>
+                <!--Optional:-->
+                <MerchantPromotionId>string</MerchantPromotionId>
+                <!--Optional:-->
+                <GroupClaimCode>string</GroupClaimCode>
+                <!--Optional:-->
+                <CouponCombinationType>string</CouponCombinationType>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+                <!--Optional:-->
+                <EligibilityRequirements>
+                  <!--Zero or more repetitions:-->
+                  <EligibilityRequirement>
+                    <EligibilityRequirementType>string</EligibilityRequirementType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <CurrencyAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </CurrencyAmount>
+                  </EligibilityRequirement>
+                </EligibilityRequirements>
+                <!--Optional:-->
+                <Benefits>
+                  <!--Zero or more repetitions:-->
+                  <Benefit>
+                    <BenefitType>string</BenefitType>
+                    <ComponentType>string</ComponentType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <PercentOff>1.051732E7</PercentOff>
+                    <!--Optional:-->
+                    <FixedAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </FixedAmount>
+                    <!--Optional:-->
+                    <Ceiling>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Ceiling>
+                  </Benefit>
+                </Benefits>
+                <!--Optional:-->
+                <ItemApplicability>
+                  <ASIN>string</ASIN>
+                  <IsInBenefitSet>false</IsInBenefitSet>
+                  <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                </ItemApplicability>
+                <!--Optional:-->
+                <MerchandisingMessage>string</MerchandisingMessage>
+              </Details>
+            </Promotion>
+          </Promotions>
+        </Offer>
+      </Offers>
+      <!--Optional:-->
+      <VariationSummary>
+        <!--Optional:-->
+        <LowestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestPrice>
+        <!--Optional:-->
+        <HighestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestPrice>
+        <!--Optional:-->
+        <LowestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestSalePrice>
+        <!--Optional:-->
+        <HighestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestSalePrice>
+        <!--Optional:-->
+        <SingleMerchantId>string</SingleMerchantId>
+      </VariationSummary>
+      <!--Optional:-->
+      <Variations>
+        <!--Optional:-->
+        <TotalVariations>200</TotalVariations>
+        <!--Optional:-->
+        <TotalVariationPages>200</TotalVariationPages>
+        <!--Optional:-->
+        <VariationDimensions>
+          <!--1 or more repetitions:-->
+          <VariationDimension>string</VariationDimension>
+        </VariationDimensions>
+        <!--Zero or more repetitions:-->
+        <Item/>
+      </Variations>
+      <!--Optional:-->
+      <CustomerReviews>
+        <!--Optional:-->
+        <AverageRating>1000.00</AverageRating>
+        <!--Optional:-->
+        <TotalReviews>200</TotalReviews>
+        <!--Optional:-->
+        <TotalReviewPages>200</TotalReviewPages>
+        <!--Zero or more repetitions:-->
+        <Review>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Rating>1000.00</Rating>
+          <!--Optional:-->
+          <HelpfulVotes>200</HelpfulVotes>
+          <!--Optional:-->
+          <CustomerId>string</CustomerId>
+          <!--Optional:-->
+          <Reviewer>
+            <!--Optional:-->
+            <CustomerId>string</CustomerId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <Location>string</Location>
+          </Reviewer>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <Summary>string</Summary>
+          <!--Optional:-->
+          <Content>string</Content>
+        </Review>
+      </CustomerReviews>
+      <!--Optional:-->
+      <EditorialReviews>
+        <!--Zero or more repetitions:-->
+        <EditorialReview>
+          <!--Optional:-->
+          <Source>string</Source>
+          <!--Optional:-->
+          <Content>string</Content>
+          <!--Optional:-->
+          <IsLinkSuppressed>true</IsLinkSuppressed>
+        </EditorialReview>
+      </EditorialReviews>
+      <!--Optional:-->
+      <SimilarProducts>
+        <!--1 or more repetitions:-->
+        <SimilarProduct>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </SimilarProduct>
+      </SimilarProducts>
+      <!--Optional:-->
+      <Accessories>
+        <!--1 or more repetitions:-->
+        <Accessory>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </Accessory>
+      </Accessories>
+      <!--Optional:-->
+      <Tracks>
+        <!--1 or more repetitions:-->
+        <Disc Number="201">
+          <!--1 or more repetitions:-->
+          <Track Number="201">string</Track>
+        </Disc>
+      </Tracks>
+      <!--Optional:-->
+      <BrowseNodes>
+        <!--Zero or more repetitions:-->
+        <BrowseNode>
+          <!--Optional:-->
+          <BrowseNodeId>string</BrowseNodeId>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <IsCategoryRoot>false</IsCategoryRoot>
+          <!--Optional:-->
+          <Properties>
+            <!--1 or more repetitions:-->
+            <Property>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Value>string</Value>
+            </Property>
+          </Properties>
+          <!--Optional:-->
+          <Children>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Children>
+          <!--Optional:-->
+          <Ancestors>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Ancestors>
+          <!--Optional:-->
+          <TopSellers>
+            <!--1 or more repetitions:-->
+            <TopSeller>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </TopSeller>
+          </TopSellers>
+          <!--Optional:-->
+          <NewReleases>
+            <!--1 or more repetitions:-->
+            <NewRelease>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </NewRelease>
+          </NewReleases>
+        </BrowseNode>
+      </BrowseNodes>
+      <!--Optional:-->
+      <SearchInside>
+        <!--Optional:-->
+        <TotalExcerpts>200</TotalExcerpts>
+        <!--Optional:-->
+        <Excerpt>
+          <!--Optional:-->
+          <Checksum>string</Checksum>
+          <!--Optional:-->
+          <PageType>string</PageType>
+          <!--Optional:-->
+          <PageNumber>string</PageNumber>
+          <!--Optional:-->
+          <SequenceNumber>string</SequenceNumber>
+          <!--Optional:-->
+          <Text>string</Text>
+        </Excerpt>
+      </SearchInside>
+      <!--Optional:-->
+      <ListmaniaLists>
+        <!--1 or more repetitions:-->
+        <ListmaniaList>
+          <ListId>string</ListId>
+          <!--Optional:-->
+          <ListName>string</ListName>
+        </ListmaniaList>
+      </ListmaniaLists>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>Item</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item/>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <TaggedListmaniaLists>
+            <!--Optional:-->
+            <List>
+              <ListId>string</ListId>
+              <!--Optional:-->
+              <ListURL>string</ListURL>
+              <!--Optional:-->
+              <RegistryNumber>string</RegistryNumber>
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Zero or more repetitions:-->
+            </List>
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+          </TaggedListmaniaLists>
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+    </Item>
+    <!--Optional:-->
+  </Items>
+</ItemSearchResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListLookupResponse.xml
new file mode 100644
index 0000000..31453e3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListLookupResponse.xml
@@ -0,0 +1,2057 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ListLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Lists>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <List>
+      <ListId>string</ListId>
+      <!--Optional:-->
+      <ListURL>string</ListURL>
+      <!--Optional:-->
+      <RegistryNumber>string</RegistryNumber>
+      <!--Optional:-->
+      <ListName>string</ListName>
+      <!--Optional:-->
+      <ListType>BabyRegistry</ListType>
+      <!--Optional:-->
+      <TotalItems>200</TotalItems>
+      <!--Optional:-->
+      <TotalPages>200</TotalPages>
+      <!--Optional:-->
+      <DateCreated>string</DateCreated>
+      <!--Optional:-->
+      <OccasionDate>string</OccasionDate>
+      <!--Optional:-->
+      <CustomerName>string</CustomerName>
+      <!--Optional:-->
+      <PartnerName>string</PartnerName>
+      <!--Optional:-->
+      <AdditionalName>string</AdditionalName>
+      <!--Optional:-->
+      <Comment>string</Comment>
+      <!--Optional:-->
+      <Image>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </Image>
+      <!--Optional:-->
+      <AverageRating>1000.00</AverageRating>
+      <!--Optional:-->
+      <TotalVotes>200</TotalVotes>
+      <!--Optional:-->
+      <TotalTimesRead>200</TotalTimesRead>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>ListmaniaList</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item>
+              <!--Optional:-->
+              <AlternateVersions>
+                <!--Zero or more repetitions:-->
+                <AlternateVersion>
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                  <!--Optional:-->
+                  <Binding>string</Binding>
+                </AlternateVersion>
+              </AlternateVersions>
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <ParentASIN>string</ParentASIN>
+              <!--Optional:-->
+              <DetailPageURL>string</DetailPageURL>
+              <!--Optional:-->
+              <SalesRank>string</SalesRank>
+              <!--Optional:-->
+              <SmallImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SmallImage>
+              <!--Optional:-->
+              <MediumImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </MediumImage>
+              <!--Optional:-->
+              <LargeImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </LargeImage>
+              <!--Zero or more repetitions:-->
+              <ImageSets>
+                <!--Optional:-->
+                <MerchantId>string</MerchantId>
+                <!--Zero or more repetitions:-->
+                <ImageSet Category="string">
+                  <!--Optional:-->
+                  <SwatchImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SwatchImage>
+                  <!--Optional:-->
+                  <SmallImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SmallImage>
+                  <!--Optional:-->
+                  <ThumbnailImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </ThumbnailImage>
+                  <!--Optional:-->
+                  <TinyImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </TinyImage>
+                  <!--Optional:-->
+                  <MediumImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </MediumImage>
+                  <!--Optional:-->
+                  <LargeImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </LargeImage>
+                </ImageSet>
+              </ImageSets>
+              <!--Optional:-->
+              <ItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Zero or more repetitions:-->
+                <Age>string</Age>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <AnalogVideoFormat>string</AnalogVideoFormat>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Zero or more repetitions:-->
+                <Category>string</Category>
+                <!--Zero or more repetitions:-->
+                <CategoryBin>string</CategoryBin>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Zero or more repetitions:-->
+                <Character>string</Character>
+                <!--Optional:-->
+                <CEROAgeRating>string</CEROAgeRating>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <ClubType>string</ClubType>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Zero or more repetitions:-->
+                <CompatibleDevices>string</CompatibleDevices>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Zero or more repetitions:-->
+                <DataLinkProtocol>string</DataLinkProtocol>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplayColorSupport>string</DisplayColorSupport>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Zero or more repetitions:-->
+                <EducationalFocus>string</EducationalFocus>
+                <!--Zero or more repetitions:-->
+                <Ethnicity>string</Ethnicity>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FilmColorType>string</FilmColorType>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FlavorName>string</FlavorName>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Zero or more repetitions:-->
+                <FormFactor>string</FormFactor>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Zero or more repetitions:-->
+                <GemTypeSetElement>string</GemTypeSetElement>
+                <!--Zero or more repetitions:-->
+                <Gender>string</Gender>
+                <!--Optional:-->
+                <Genre>string</Genre>
+                <!--Optional:-->
+                <GLProductGroup>string</GLProductGroup>
+                <!--Optional:-->
+                <GolfClubFlex>string</GolfClubFlex>
+                <!--Optional:-->
+                <GolfClubLoft>string</GolfClubLoft>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HandOrientation>string</HandOrientation>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">1000.00</HardDiskSize>
+                <!--Optional:-->
+                <HardDiskInterface>string</HardDiskInterface>
+                <!--Optional:-->
+                <HardwarePlatform>string</HardwarePlatform>
+                <!--Optional:-->
+                <HasAutoFocus>true</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>true</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>false</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>false</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>false</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Zero or more repetitions:-->
+                <IngredientsSetElement>string</IngredientsSetElement>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Zero or more repetitions:-->
+                <Interest>string</Interest>
+                <!--Optional:-->
+                <IsAdultProduct>true</IsAdultProduct>
+                <!--Optional:-->
+                <IsAutographed>false</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>true</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>false</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IsPreannounce>false</IsPreannounce>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Zero or more repetitions:-->
+                <LanguageName>string</LanguageName>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LensType>string</LensType>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Zero or more repetitions:-->
+                <MaterialTypeSetElement>string</MaterialTypeSetElement>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MediaType>string</MediaType>
+                <!--Optional:-->
+                <MemorySlotsAvailable>string</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OperatingSystem>string</OperatingSystem>
+                <!--Optional:-->
+                <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PackageQuantity>200</PackageQuantity>
+                <!--Zero or more repetitions:-->
+                <PantLength>string</PantLength>
+                <!--Zero or more repetitions:-->
+                <PantSize>string</PantSize>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Zero or more repetitions:-->
+                <PrimaryColor>string</PrimaryColor>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+                <!--Optional:-->
+                <ProductTypeName>string</ProductTypeName>
+                <!--Optional:-->
+                <ProductTypeSubcategory>string</ProductTypeSubcategory>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <RemovableStorage>string</RemovableStorage>
+                <!--Optional:-->
+                <RequiredVoltageRange>string</RequiredVoltageRange>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <RunningTime Units="string">1000.00</RunningTime>
+                <!--Optional:-->
+                <ScentName>string</ScentName>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <ShaftMaterialType>string</ShaftMaterialType>
+                <!--Zero or more repetitions:-->
+                <ShoeSize>string</ShoeSize>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <Style>string</Style>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SupportedMediaSize>string</SupportedMediaSize>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Zero or more repetitions:-->
+                <TargetBrand>string</TargetBrand>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WEEETaxValue>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </WEEETaxValue>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </ItemAttributes>
+              <!--Optional:-->
+              <MerchantItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CountryOfOrigin>string</CountryOfOrigin>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Optional:-->
+                <Customizable>string</Customizable>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <Description>string</Description>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Optional:-->
+                <FixedShippingCharge>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </FixedShippingCharge>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">200</HardDiskSize>
+                <!--Optional:-->
+                <HasAutoFocus>false</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>false</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>false</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>true</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>true</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>true</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Indications>string</Indications>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Optional:-->
+                <IsAutographed>false</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>true</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MemorySlotsAvailable>200</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Zero or more repetitions:-->
+                <PurchasingChannel>string</PurchasingChannel>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <SafetyWarning>string</SafetyWarning>
+                <!--Optional:-->
+                <SalesRestriction>string</SalesRestriction>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <VendorRebate>
+                  <!--Optional:-->
+                  <Type>string</Type>
+                  <!--Optional:-->
+                  <StartDate>string</StartDate>
+                  <!--Optional:-->
+                  <EndDate>string</EndDate>
+                </VendorRebate>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WebsiteBuyability>string</WebsiteBuyability>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </MerchantItemAttributes>
+              <!--Optional:-->
+              <Collections>
+                <!--Zero or more repetitions:-->
+                <Collection>
+                  <!--Optional:-->
+                  <CollectionSummary>
+                    <!--Optional:-->
+                    <LowestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestListPrice>
+                    <!--Optional:-->
+                    <HighestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestListPrice>
+                    <!--Optional:-->
+                    <LowestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestSalePrice>
+                    <!--Optional:-->
+                    <HighestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestSalePrice>
+                  </CollectionSummary>
+                  <!--Optional:-->
+                  <CollectionParent>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionParent>
+                  <!--Zero or more repetitions:-->
+                  <CollectionItem>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionItem>
+                </Collection>
+              </Collections>
+              <!--Optional:-->
+              <Subjects>
+                <!--Zero or more repetitions:-->
+                <Subject>string</Subject>
+              </Subjects>
+              <!--Optional:-->
+              <OfferSummary>
+                <!--Optional:-->
+                <LowestNewPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestNewPrice>
+                <!--Optional:-->
+                <LowestUsedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestUsedPrice>
+                <!--Optional:-->
+                <LowestCollectiblePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestCollectiblePrice>
+                <!--Optional:-->
+                <LowestRefurbishedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestRefurbishedPrice>
+                <!--Optional:-->
+                <TotalNew>string</TotalNew>
+                <!--Optional:-->
+                <TotalUsed>string</TotalUsed>
+                <!--Optional:-->
+                <TotalCollectible>string</TotalCollectible>
+                <!--Optional:-->
+                <TotalRefurbished>string</TotalRefurbished>
+              </OfferSummary>
+              <!--Optional:-->
+              <Offers>
+                <!--Optional:-->
+                <TotalOffers>200</TotalOffers>
+                <!--Optional:-->
+                <TotalOfferPages>200</TotalOfferPages>
+                <!--Zero or more repetitions:-->
+                <Offer>
+                  <!--Optional:-->
+                  <Merchant>
+                    <MerchantId>string</MerchantId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                  </Merchant>
+                  <!--Optional:-->
+                  <Seller>
+                    <SellerId>string</SellerId>
+                    <!--Optional:-->
+                    <SellerName>string</SellerName>
+                    <!--Optional:-->
+                    <SellerLegalName>string</SellerLegalName>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <About>string</About>
+                    <!--Optional:-->
+                    <MoreAbout>string</MoreAbout>
+                    <!--Optional:-->
+                    <Location>
+                      <!--Optional:-->
+                      <UserDefinedLocation>string</UserDefinedLocation>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </Location>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                    <!--Optional:-->
+                    <SellerFeedbackSummary>
+                      <!--Zero or more repetitions:-->
+                      <FeedbackDateRange Period="string">
+                        <!--Zero or more repetitions:-->
+                        <SellerFeedbackRating Type="string">
+                          <!--Optional:-->
+                          <Count>200</Count>
+                          <!--Optional:-->
+                          <Percentage>200</Percentage>
+                        </SellerFeedbackRating>
+                      </FeedbackDateRange>
+                    </SellerFeedbackSummary>
+                    <!--Optional:-->
+                    <SellerFeedback>
+                      <!--1 or more repetitions:-->
+                      <Feedback>
+                        <!--Optional:-->
+                        <Rating>200</Rating>
+                        <!--Optional:-->
+                        <Comment>string</Comment>
+                        <!--Optional:-->
+                        <Date>string</Date>
+                        <!--Optional:-->
+                        <RatedBy>string</RatedBy>
+                      </Feedback>
+                    </SellerFeedback>
+                  </Seller>
+                  <!--Optional:-->
+                  <OfferAttributes>
+                    <!--Optional:-->
+                    <Condition>string</Condition>
+                    <!--Optional:-->
+                    <SubCondition>string</SubCondition>
+                    <!--Optional:-->
+                    <ConditionNote>string</ConditionNote>
+                    <!--Optional:-->
+                    <WillShipExpedited>false</WillShipExpedited>
+                    <!--Optional:-->
+                    <WillShipInternational>false</WillShipInternational>
+                  </OfferAttributes>
+                  <!--Zero or more repetitions:-->
+                  <OfferListing>
+                    <!--Optional:-->
+                    <OfferListingId>string</OfferListingId>
+                    <!--Optional:-->
+                    <ExchangeId>string</ExchangeId>
+                    <!--Optional:-->
+                    <Price>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Price>
+                    <!--Optional:-->
+                    <SalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </SalePrice>
+                    <!--Optional:-->
+                    <AmountSaved>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </AmountSaved>
+                    <!--Optional:-->
+                    <PercentageSaved>200</PercentageSaved>
+                    <!--Optional:-->
+                    <Availability>string</Availability>
+                    <!--Optional:-->
+                    <AvailabilityAttributes>
+                      <!--Optional:-->
+                      <AvailabilityType>string</AvailabilityType>
+                      <!--Optional:-->
+                      <IsPreorder>false</IsPreorder>
+                      <!--Optional:-->
+                      <MinimumHours>100</MinimumHours>
+                      <!--Optional:-->
+                      <MaximumHours>100</MaximumHours>
+                    </AvailabilityAttributes>
+                    <!--Optional:-->
+                    <Quantity>100</Quantity>
+                    <!--Optional:-->
+                    <ISPUStoreAddress>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Address1>string</Address1>
+                      <!--Optional:-->
+                      <Address2>string</Address2>
+                      <!--Optional:-->
+                      <Address3>string</Address3>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <PostalCode>string</PostalCode>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </ISPUStoreAddress>
+                    <!--Optional:-->
+                    <ISPUStoreHours>string</ISPUStoreHours>
+                    <!--Optional:-->
+                    <IsEligibleForSuperSaverShipping>true</IsEligibleForSuperSaverShipping>
+                    <!--Optional:-->
+                    <SalesRestriction>string</SalesRestriction>
+                    <!--Zero or more repetitions:-->
+                    <ShippingCharge>
+                      <ShippingType>string</ShippingType>
+                      <ShippingPrice>
+                        <!--Optional:-->
+                        <Amount>100</Amount>
+                        <!--Optional:-->
+                        <CurrencyCode>string</CurrencyCode>
+                        <FormattedPrice>string</FormattedPrice>
+                      </ShippingPrice>
+                    </ShippingCharge>
+                  </OfferListing>
+                  <!--Optional:-->
+                  <LoyaltyPoints>
+                    <!--Optional:-->
+                    <Points>200</Points>
+                    <!--Optional:-->
+                    <TypicalRedemptionValue>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </TypicalRedemptionValue>
+                  </LoyaltyPoints>
+                  <!--Optional:-->
+                  <Promotions>
+                    <!--Zero or more repetitions:-->
+                    <Promotion>
+                      <!--Optional:-->
+                      <Summary>
+                        <PromotionId>string</PromotionId>
+                        <!--Optional:-->
+                        <Category>string</Category>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                        <!--Optional:-->
+                        <BenefitDescription>string</BenefitDescription>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                      </Summary>
+                      <!--Optional:-->
+                      <Details>
+                        <MerchantId>string</MerchantId>
+                        <OwningMerchantId>string</OwningMerchantId>
+                        <PromotionId>string</PromotionId>
+                        <PromotionCategory>string</PromotionCategory>
+                        <!--Optional:-->
+                        <MerchantPromotionId>string</MerchantPromotionId>
+                        <!--Optional:-->
+                        <GroupClaimCode>string</GroupClaimCode>
+                        <!--Optional:-->
+                        <CouponCombinationType>string</CouponCombinationType>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                        <!--Optional:-->
+                        <EligibilityRequirements>
+                          <!--Zero or more repetitions:-->
+                          <EligibilityRequirement>
+                            <EligibilityRequirementType>string</EligibilityRequirementType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <CurrencyAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </CurrencyAmount>
+                          </EligibilityRequirement>
+                        </EligibilityRequirements>
+                        <!--Optional:-->
+                        <Benefits>
+                          <!--Zero or more repetitions:-->
+                          <Benefit>
+                            <BenefitType>string</BenefitType>
+                            <ComponentType>string</ComponentType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <PercentOff>1.051732E7</PercentOff>
+                            <!--Optional:-->
+                            <FixedAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </FixedAmount>
+                            <!--Optional:-->
+                            <Ceiling>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </Ceiling>
+                          </Benefit>
+                        </Benefits>
+                        <!--Optional:-->
+                        <ItemApplicability>
+                          <ASIN>string</ASIN>
+                          <IsInBenefitSet>true</IsInBenefitSet>
+                          <IsInEligibilityRequirementSet>false</IsInEligibilityRequirementSet>
+                        </ItemApplicability>
+                        <!--Optional:-->
+                        <MerchandisingMessage>string</MerchandisingMessage>
+                      </Details>
+                    </Promotion>
+                  </Promotions>
+                </Offer>
+              </Offers>
+              <!--Optional:-->
+              <VariationSummary>
+                <!--Optional:-->
+                <LowestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestPrice>
+                <!--Optional:-->
+                <HighestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestPrice>
+                <!--Optional:-->
+                <LowestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestSalePrice>
+                <!--Optional:-->
+                <HighestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestSalePrice>
+                <!--Optional:-->
+                <SingleMerchantId>string</SingleMerchantId>
+              </VariationSummary>
+              <!--Optional:-->
+              <Variations>
+                <!--Optional:-->
+                <TotalVariations>200</TotalVariations>
+                <!--Optional:-->
+                <TotalVariationPages>200</TotalVariationPages>
+                <!--Optional:-->
+                <VariationDimensions>
+                  <!--1 or more repetitions:-->
+                  <VariationDimension>string</VariationDimension>
+                </VariationDimensions>
+                <!--Zero or more repetitions:-->
+                <Item/>
+              </Variations>
+              <!--Optional:-->
+              <CustomerReviews>
+                <!--Optional:-->
+                <AverageRating>1000.00</AverageRating>
+                <!--Optional:-->
+                <TotalReviews>200</TotalReviews>
+                <!--Optional:-->
+                <TotalReviewPages>200</TotalReviewPages>
+                <!--Zero or more repetitions:-->
+                <Review>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Rating>1000.00</Rating>
+                  <!--Optional:-->
+                  <HelpfulVotes>200</HelpfulVotes>
+                  <!--Optional:-->
+                  <CustomerId>string</CustomerId>
+                  <!--Optional:-->
+                  <Reviewer>
+                    <!--Optional:-->
+                    <CustomerId>string</CustomerId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <Location>string</Location>
+                  </Reviewer>
+                  <!--Optional:-->
+                  <TotalVotes>200</TotalVotes>
+                  <!--Optional:-->
+                  <Date>string</Date>
+                  <!--Optional:-->
+                  <Summary>string</Summary>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                </Review>
+              </CustomerReviews>
+              <!--Optional:-->
+              <EditorialReviews>
+                <!--Zero or more repetitions:-->
+                <EditorialReview>
+                  <!--Optional:-->
+                  <Source>string</Source>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                  <!--Optional:-->
+                  <IsLinkSuppressed>true</IsLinkSuppressed>
+                </EditorialReview>
+              </EditorialReviews>
+              <!--Optional:-->
+              <SimilarProducts>
+                <!--1 or more repetitions:-->
+                <SimilarProduct>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </SimilarProduct>
+              </SimilarProducts>
+              <!--Optional:-->
+              <Accessories>
+                <!--1 or more repetitions:-->
+                <Accessory>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </Accessory>
+              </Accessories>
+              <!--Optional:-->
+              <Tracks>
+                <!--1 or more repetitions:-->
+                <Disc Number="201">
+                  <!--1 or more repetitions:-->
+                  <Track Number="201">string</Track>
+                </Disc>
+              </Tracks>
+              <!--Optional:-->
+              <BrowseNodes>
+                <!--Zero or more repetitions:-->
+                <BrowseNode>
+                  <!--Optional:-->
+                  <BrowseNodeId>string</BrowseNodeId>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <IsCategoryRoot>false</IsCategoryRoot>
+                  <!--Optional:-->
+                  <Properties>
+                    <!--1 or more repetitions:-->
+                    <Property>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Value>string</Value>
+                    </Property>
+                  </Properties>
+                  <!--Optional:-->
+                  <Children>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Children>
+                  <!--Optional:-->
+                  <Ancestors>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Ancestors>
+                  <!--Optional:-->
+                  <TopSellers>
+                    <!--1 or more repetitions:-->
+                    <TopSeller>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </TopSeller>
+                  </TopSellers>
+                  <!--Optional:-->
+                  <NewReleases>
+                    <!--1 or more repetitions:-->
+                    <NewRelease>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </NewRelease>
+                  </NewReleases>
+                </BrowseNode>
+              </BrowseNodes>
+              <!--Optional:-->
+              <SearchInside>
+                <!--Optional:-->
+                <TotalExcerpts>200</TotalExcerpts>
+                <!--Optional:-->
+                <Excerpt>
+                  <!--Optional:-->
+                  <Checksum>string</Checksum>
+                  <!--Optional:-->
+                  <PageType>string</PageType>
+                  <!--Optional:-->
+                  <PageNumber>string</PageNumber>
+                  <!--Optional:-->
+                  <SequenceNumber>string</SequenceNumber>
+                  <!--Optional:-->
+                  <Text>string</Text>
+                </Excerpt>
+              </SearchInside>
+              <!--Optional:-->
+              <ListmaniaLists>
+                <!--1 or more repetitions:-->
+                <ListmaniaList>
+                  <ListId>string</ListId>
+                  <!--Optional:-->
+                </ListmaniaList>
+              </ListmaniaLists>
+              <!--Optional:-->
+            </Item>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+      <!--Zero or more repetitions:-->
+    </List>
+  </Lists>
+</ListLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListSearchResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListSearchResponse.xml
new file mode 100644
index 0000000..28b69a5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/ListSearchResponse.xml
@@ -0,0 +1,2057 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ListSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Lists>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <List>
+      <ListId>string</ListId>
+      <!--Optional:-->
+      <ListURL>string</ListURL>
+      <!--Optional:-->
+      <RegistryNumber>string</RegistryNumber>
+      <!--Optional:-->
+      <ListName>string</ListName>
+      <!--Optional:-->
+      <ListType>BabyRegistry</ListType>
+      <!--Optional:-->
+      <TotalItems>200</TotalItems>
+      <!--Optional:-->
+      <TotalPages>200</TotalPages>
+      <!--Optional:-->
+      <DateCreated>string</DateCreated>
+      <!--Optional:-->
+      <OccasionDate>string</OccasionDate>
+      <!--Optional:-->
+      <CustomerName>string</CustomerName>
+      <!--Optional:-->
+      <PartnerName>string</PartnerName>
+      <!--Optional:-->
+      <AdditionalName>string</AdditionalName>
+      <!--Optional:-->
+      <Comment>string</Comment>
+      <!--Optional:-->
+      <Image>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </Image>
+      <!--Optional:-->
+      <AverageRating>1000.00</AverageRating>
+      <!--Optional:-->
+      <TotalVotes>200</TotalVotes>
+      <!--Optional:-->
+      <TotalTimesRead>200</TotalTimesRead>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>ListmaniaList</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item>
+              <!--Optional:-->
+              <AlternateVersions>
+                <!--Zero or more repetitions:-->
+                <AlternateVersion>
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                  <!--Optional:-->
+                  <Binding>string</Binding>
+                </AlternateVersion>
+              </AlternateVersions>
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <ParentASIN>string</ParentASIN>
+              <!--Optional:-->
+              <DetailPageURL>string</DetailPageURL>
+              <!--Optional:-->
+              <SalesRank>string</SalesRank>
+              <!--Optional:-->
+              <SmallImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SmallImage>
+              <!--Optional:-->
+              <MediumImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </MediumImage>
+              <!--Optional:-->
+              <LargeImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </LargeImage>
+              <!--Zero or more repetitions:-->
+              <ImageSets>
+                <!--Optional:-->
+                <MerchantId>string</MerchantId>
+                <!--Zero or more repetitions:-->
+                <ImageSet Category="string">
+                  <!--Optional:-->
+                  <SwatchImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SwatchImage>
+                  <!--Optional:-->
+                  <SmallImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </SmallImage>
+                  <!--Optional:-->
+                  <ThumbnailImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </ThumbnailImage>
+                  <!--Optional:-->
+                  <TinyImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </TinyImage>
+                  <!--Optional:-->
+                  <MediumImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </MediumImage>
+                  <!--Optional:-->
+                  <LargeImage>
+                    <URL>string</URL>
+                    <Height Units="string">1000.00</Height>
+                    <Width Units="string">1000.00</Width>
+                    <!--Optional:-->
+                    <IsVerified>string</IsVerified>
+                  </LargeImage>
+                </ImageSet>
+              </ImageSets>
+              <!--Optional:-->
+              <ItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Zero or more repetitions:-->
+                <Age>string</Age>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <AnalogVideoFormat>string</AnalogVideoFormat>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Zero or more repetitions:-->
+                <Category>string</Category>
+                <!--Zero or more repetitions:-->
+                <CategoryBin>string</CategoryBin>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Zero or more repetitions:-->
+                <Character>string</Character>
+                <!--Optional:-->
+                <CEROAgeRating>string</CEROAgeRating>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <ClubType>string</ClubType>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Zero or more repetitions:-->
+                <CompatibleDevices>string</CompatibleDevices>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Zero or more repetitions:-->
+                <DataLinkProtocol>string</DataLinkProtocol>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplayColorSupport>string</DisplayColorSupport>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Zero or more repetitions:-->
+                <EducationalFocus>string</EducationalFocus>
+                <!--Zero or more repetitions:-->
+                <Ethnicity>string</Ethnicity>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FilmColorType>string</FilmColorType>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FlavorName>string</FlavorName>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Zero or more repetitions:-->
+                <FormFactor>string</FormFactor>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Zero or more repetitions:-->
+                <GemTypeSetElement>string</GemTypeSetElement>
+                <!--Zero or more repetitions:-->
+                <Gender>string</Gender>
+                <!--Optional:-->
+                <Genre>string</Genre>
+                <!--Optional:-->
+                <GLProductGroup>string</GLProductGroup>
+                <!--Optional:-->
+                <GolfClubFlex>string</GolfClubFlex>
+                <!--Optional:-->
+                <GolfClubLoft>string</GolfClubLoft>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HandOrientation>string</HandOrientation>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">1000.00</HardDiskSize>
+                <!--Optional:-->
+                <HardDiskInterface>string</HardDiskInterface>
+                <!--Optional:-->
+                <HardwarePlatform>string</HardwarePlatform>
+                <!--Optional:-->
+                <HasAutoFocus>true</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>true</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>true</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>false</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>false</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>false</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Zero or more repetitions:-->
+                <IngredientsSetElement>string</IngredientsSetElement>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Zero or more repetitions:-->
+                <Interest>string</Interest>
+                <!--Optional:-->
+                <IsAdultProduct>true</IsAdultProduct>
+                <!--Optional:-->
+                <IsAutographed>false</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>true</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>false</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IsPreannounce>false</IsPreannounce>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Zero or more repetitions:-->
+                <LanguageName>string</LanguageName>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LensType>string</LensType>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Zero or more repetitions:-->
+                <MaterialTypeSetElement>string</MaterialTypeSetElement>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MediaType>string</MediaType>
+                <!--Optional:-->
+                <MemorySlotsAvailable>string</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OperatingSystem>string</OperatingSystem>
+                <!--Optional:-->
+                <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PackageQuantity>200</PackageQuantity>
+                <!--Zero or more repetitions:-->
+                <PantLength>string</PantLength>
+                <!--Zero or more repetitions:-->
+                <PantSize>string</PantSize>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Zero or more repetitions:-->
+                <PrimaryColor>string</PrimaryColor>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+                <!--Optional:-->
+                <ProductTypeName>string</ProductTypeName>
+                <!--Optional:-->
+                <ProductTypeSubcategory>string</ProductTypeSubcategory>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <RemovableStorage>string</RemovableStorage>
+                <!--Optional:-->
+                <RequiredVoltageRange>string</RequiredVoltageRange>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <RunningTime Units="string">1000.00</RunningTime>
+                <!--Optional:-->
+                <ScentName>string</ScentName>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <ShaftMaterialType>string</ShaftMaterialType>
+                <!--Zero or more repetitions:-->
+                <ShoeSize>string</ShoeSize>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <Style>string</Style>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SupportedMediaSize>string</SupportedMediaSize>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Zero or more repetitions:-->
+                <TargetBrand>string</TargetBrand>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WEEETaxValue>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </WEEETaxValue>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </ItemAttributes>
+              <!--Optional:-->
+              <MerchantItemAttributes>
+                <!--Zero or more repetitions:-->
+                <Actor>string</Actor>
+                <!--Optional:-->
+                <Address>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Address>
+                <!--Optional:-->
+                <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+                <!--Optional:-->
+                <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+                <!--Optional:-->
+                <ApertureModes>string</ApertureModes>
+                <!--Zero or more repetitions:-->
+                <Artist>string</Artist>
+                <!--Optional:-->
+                <AspectRatio>string</AspectRatio>
+                <!--Optional:-->
+                <AssemblyInstructions>string</AssemblyInstructions>
+                <!--Optional:-->
+                <AssemblyRequired>string</AssemblyRequired>
+                <!--Optional:-->
+                <AudienceRating>string</AudienceRating>
+                <!--Zero or more repetitions:-->
+                <AudioFormat>string</AudioFormat>
+                <!--Zero or more repetitions:-->
+                <Author>string</Author>
+                <!--Optional:-->
+                <BackFinding>string</BackFinding>
+                <!--Optional:-->
+                <BandMaterialType>string</BandMaterialType>
+                <!--Optional:-->
+                <BatteriesIncluded>string</BatteriesIncluded>
+                <!--Optional:-->
+                <BatteriesRequired>string</BatteriesRequired>
+                <!--Optional:-->
+                <Batteries Units="string">200</Batteries>
+                <!--Optional:-->
+                <BatteryDescription>string</BatteryDescription>
+                <!--Optional:-->
+                <BatteryType>string</BatteryType>
+                <!--Optional:-->
+                <BezelMaterialType>string</BezelMaterialType>
+                <!--Optional:-->
+                <Binding>string</Binding>
+                <!--Optional:-->
+                <Brand>string</Brand>
+                <!--Optional:-->
+                <CalendarType>string</CalendarType>
+                <!--Zero or more repetitions:-->
+                <CameraManualFeatures>string</CameraManualFeatures>
+                <!--Optional:-->
+                <CaseDiameter Units="string">1000.00</CaseDiameter>
+                <!--Optional:-->
+                <CaseMaterialType>string</CaseMaterialType>
+                <!--Optional:-->
+                <CaseThickness Units="string">1000.00</CaseThickness>
+                <!--Optional:-->
+                <CaseType>string</CaseType>
+                <!--Optional:-->
+                <CatalogNumber>string</CatalogNumber>
+                <!--Optional:-->
+                <CDRWDescription>string</CDRWDescription>
+                <!--Optional:-->
+                <ChainType>string</ChainType>
+                <!--Optional:-->
+                <ClaspType>string</ClaspType>
+                <!--Optional:-->
+                <ClothingSize>string</ClothingSize>
+                <!--Optional:-->
+                <Color>string</Color>
+                <!--Optional:-->
+                <Compatibility>string</Compatibility>
+                <!--Optional:-->
+                <ComputerHardwareType>string</ComputerHardwareType>
+                <!--Optional:-->
+                <ComputerPlatform>string</ComputerPlatform>
+                <!--Optional:-->
+                <Connectivity>string</Connectivity>
+                <!--Optional:-->
+                <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+                <!--Optional:-->
+                <Country>string</Country>
+                <!--Optional:-->
+                <CountryOfOrigin>string</CountryOfOrigin>
+                <!--Optional:-->
+                <CPUManufacturer>string</CPUManufacturer>
+                <!--Optional:-->
+                <CPUSpeed Units="string">1000.00</CPUSpeed>
+                <!--Optional:-->
+                <CPUType>string</CPUType>
+                <!--Zero or more repetitions:-->
+                <Creator Role="string">string</Creator>
+                <!--Optional:-->
+                <Cuisine>string</Cuisine>
+                <!--Optional:-->
+                <Customizable>string</Customizable>
+                <!--Optional:-->
+                <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+                <!--Optional:-->
+                <DeliveryOption>string</DeliveryOption>
+                <!--Optional:-->
+                <Department>string</Department>
+                <!--Optional:-->
+                <Description>string</Description>
+                <!--Optional:-->
+                <DeweyDecimalNumber>string</DeweyDecimalNumber>
+                <!--Optional:-->
+                <DialColor>string</DialColor>
+                <!--Optional:-->
+                <DialWindowMaterialType>string</DialWindowMaterialType>
+                <!--Optional:-->
+                <DigitalZoom Units="string">1000.00</DigitalZoom>
+                <!--Zero or more repetitions:-->
+                <Director>string</Director>
+                <!--Optional:-->
+                <DisplaySize Units="string">1000.00</DisplaySize>
+                <!--Optional:-->
+                <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+                <!--Optional:-->
+                <DVDLayers>200</DVDLayers>
+                <!--Optional:-->
+                <DVDRWDescription>string</DVDRWDescription>
+                <!--Optional:-->
+                <DVDSides>200</DVDSides>
+                <!--Optional:-->
+                <DPCI>string</DPCI>
+                <!--Optional:-->
+                <EAN>string</EAN>
+                <!--Optional:-->
+                <Edition>string</Edition>
+                <!--Optional:-->
+                <ESRBAgeRating>string</ESRBAgeRating>
+                <!--Optional:-->
+                <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+                <!--Optional:-->
+                <FabricType>string</FabricType>
+                <!--Optional:-->
+                <FaxNumber>string</FaxNumber>
+                <!--Zero or more repetitions:-->
+                <Feature>string</Feature>
+                <!--Optional:-->
+                <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+                <!--Optional:-->
+                <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+                <!--Zero or more repetitions:-->
+                <Format>string</Format>
+                <!--Optional:-->
+                <FixedShippingCharge>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </FixedShippingCharge>
+                <!--Optional:-->
+                <GemType>string</GemType>
+                <!--Optional:-->
+                <GraphicsCardInterface>string</GraphicsCardInterface>
+                <!--Optional:-->
+                <GraphicsDescription>string</GraphicsDescription>
+                <!--Optional:-->
+                <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+                <!--Optional:-->
+                <GuitarAttribute>string</GuitarAttribute>
+                <!--Optional:-->
+                <GuitarBridgeSystem>string</GuitarBridgeSystem>
+                <!--Optional:-->
+                <GuitarPickThickness>string</GuitarPickThickness>
+                <!--Optional:-->
+                <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+                <!--Optional:-->
+                <HardDiskCount>200</HardDiskCount>
+                <!--Optional:-->
+                <HardDiskSize Units="string">200</HardDiskSize>
+                <!--Optional:-->
+                <HasAutoFocus>false</HasAutoFocus>
+                <!--Optional:-->
+                <HasBurstMode>false</HasBurstMode>
+                <!--Optional:-->
+                <HasInCameraEditing>true</HasInCameraEditing>
+                <!--Optional:-->
+                <HasRedEyeReduction>true</HasRedEyeReduction>
+                <!--Optional:-->
+                <HasSelfTimer>false</HasSelfTimer>
+                <!--Optional:-->
+                <HasTripodMount>true</HasTripodMount>
+                <!--Optional:-->
+                <HasVideoOut>true</HasVideoOut>
+                <!--Optional:-->
+                <HasViewfinder>true</HasViewfinder>
+                <!--Optional:-->
+                <HazardousMaterialType>string</HazardousMaterialType>
+                <!--Optional:-->
+                <HoursOfOperation>string</HoursOfOperation>
+                <!--Optional:-->
+                <IncludedSoftware>string</IncludedSoftware>
+                <!--Optional:-->
+                <IncludesMp3Player>true</IncludesMp3Player>
+                <!--Optional:-->
+                <Indications>string</Indications>
+                <!--Optional:-->
+                <Ingredients>string</Ingredients>
+                <!--Optional:-->
+                <InstrumentKey>string</InstrumentKey>
+                <!--Optional:-->
+                <IsAutographed>false</IsAutographed>
+                <!--Optional:-->
+                <ISBN>string</ISBN>
+                <!--Optional:-->
+                <IsFragile>false</IsFragile>
+                <!--Optional:-->
+                <IsLabCreated>true</IsLabCreated>
+                <!--Optional:-->
+                <IsMemorabilia>false</IsMemorabilia>
+                <!--Optional:-->
+                <ISOEquivalent Units="string">200</ISOEquivalent>
+                <!--Optional:-->
+                <IssuesPerYear>string</IssuesPerYear>
+                <!--Optional:-->
+                <ItemDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </ItemDimensions>
+                <!--Optional:-->
+                <KeyboardDescription>string</KeyboardDescription>
+                <!--Optional:-->
+                <Label>string</Label>
+                <!--Optional:-->
+                <Languages>
+                  <!--Zero or more repetitions:-->
+                  <Language>
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Type>string</Type>
+                    <!--Optional:-->
+                    <AudioFormat>string</AudioFormat>
+                  </Language>
+                </Languages>
+                <!--Optional:-->
+                <LegalDisclaimer>string</LegalDisclaimer>
+                <!--Optional:-->
+                <LineVoltage>string</LineVoltage>
+                <!--Optional:-->
+                <ListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </ListPrice>
+                <!--Optional:-->
+                <MacroFocusRange>string</MacroFocusRange>
+                <!--Optional:-->
+                <MagazineType>string</MagazineType>
+                <!--Optional:-->
+                <MalletHardness>string</MalletHardness>
+                <!--Optional:-->
+                <Manufacturer>string</Manufacturer>
+                <!--Optional:-->
+                <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+                <!--Optional:-->
+                <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+                <!--Optional:-->
+                <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+                <!--Optional:-->
+                <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+                <!--Optional:-->
+                <MaterialType>string</MaterialType>
+                <!--Optional:-->
+                <MaximumAperture Units="string">1000.00</MaximumAperture>
+                <!--Optional:-->
+                <MaximumColorDepth>string</MaximumColorDepth>
+                <!--Optional:-->
+                <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+                <!--Optional:-->
+                <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+                <!--Optional:-->
+                <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+                <!--Optional:-->
+                <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+                <!--Optional:-->
+                <MaximumResolution Units="string">1000.00</MaximumResolution>
+                <!--Optional:-->
+                <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+                <!--Optional:-->
+                <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+                <!--Optional:-->
+                <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+                <!--Optional:-->
+                <MemorySlotsAvailable>200</MemorySlotsAvailable>
+                <!--Optional:-->
+                <MetalStamp>string</MetalStamp>
+                <!--Optional:-->
+                <MetalType>string</MetalType>
+                <!--Optional:-->
+                <MiniMovieDescription>string</MiniMovieDescription>
+                <!--Optional:-->
+                <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+                <!--Optional:-->
+                <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+                <!--Optional:-->
+                <Model>string</Model>
+                <!--Optional:-->
+                <ModelYear>200</ModelYear>
+                <!--Optional:-->
+                <ModemDescription>string</ModemDescription>
+                <!--Optional:-->
+                <MonitorSize Units="string">1000.00</MonitorSize>
+                <!--Optional:-->
+                <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+                <!--Optional:-->
+                <MouseDescription>string</MouseDescription>
+                <!--Optional:-->
+                <MPN>string</MPN>
+                <!--Optional:-->
+                <MusicalStyle>string</MusicalStyle>
+                <!--Optional:-->
+                <NativeResolution>string</NativeResolution>
+                <!--Optional:-->
+                <Neighborhood>string</Neighborhood>
+                <!--Optional:-->
+                <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+                <!--Optional:-->
+                <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+                <!--Optional:-->
+                <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+                <!--Optional:-->
+                <NumberOfDiscs>200</NumberOfDiscs>
+                <!--Optional:-->
+                <NumberOfIssues>200</NumberOfIssues>
+                <!--Optional:-->
+                <NumberOfItems>200</NumberOfItems>
+                <!--Optional:-->
+                <NumberOfKeys>200</NumberOfKeys>
+                <!--Optional:-->
+                <NumberOfPages>200</NumberOfPages>
+                <!--Optional:-->
+                <NumberOfPearls>200</NumberOfPearls>
+                <!--Optional:-->
+                <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+                <!--Optional:-->
+                <NumberOfStones>200</NumberOfStones>
+                <!--Optional:-->
+                <NumberOfStrings>200</NumberOfStrings>
+                <!--Optional:-->
+                <NumberOfTracks>200</NumberOfTracks>
+                <!--Optional:-->
+                <OpticalZoom Units="string">1000.00</OpticalZoom>
+                <!--Optional:-->
+                <OriginalReleaseDate>string</OriginalReleaseDate>
+                <!--Optional:-->
+                <OutputWattage>200</OutputWattage>
+                <!--Optional:-->
+                <PackageDimensions>
+                  <!--Optional:-->
+                  <Height Units="string">1000.00</Height>
+                  <!--Optional:-->
+                  <Length Units="string">1000.00</Length>
+                  <!--Optional:-->
+                  <Weight Units="string">1000.00</Weight>
+                  <!--Optional:-->
+                  <Width Units="string">1000.00</Width>
+                </PackageDimensions>
+                <!--Optional:-->
+                <PearlLustre>string</PearlLustre>
+                <!--Optional:-->
+                <PearlMinimumColor>string</PearlMinimumColor>
+                <!--Optional:-->
+                <PearlShape>string</PearlShape>
+                <!--Optional:-->
+                <PearlStringingMethod>string</PearlStringingMethod>
+                <!--Optional:-->
+                <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+                <!--Optional:-->
+                <PearlType>string</PearlType>
+                <!--Optional:-->
+                <PearlUniformity>string</PearlUniformity>
+                <!--Optional:-->
+                <PhoneNumber>string</PhoneNumber>
+                <!--Zero or more repetitions:-->
+                <PhotoFlashType>string</PhotoFlashType>
+                <!--Zero or more repetitions:-->
+                <PictureFormat>string</PictureFormat>
+                <!--Zero or more repetitions:-->
+                <Platform>string</Platform>
+                <!--Optional:-->
+                <PriceRating>200</PriceRating>
+                <!--Optional:-->
+                <ProcessorCount>200</ProcessorCount>
+                <!--Optional:-->
+                <ProductGroup>string</ProductGroup>
+                <!--Optional:-->
+                <PromotionalTag>string</PromotionalTag>
+                <!--Optional:-->
+                <POBoxShippingExcluded>string</POBoxShippingExcluded>
+                <!--Optional:-->
+                <PublicationDate>string</PublicationDate>
+                <!--Optional:-->
+                <Publisher>string</Publisher>
+                <!--Zero or more repetitions:-->
+                <PurchasingChannel>string</PurchasingChannel>
+                <!--Optional:-->
+                <ReadingLevel>string</ReadingLevel>
+                <!--Optional:-->
+                <RecorderTrackCount>200</RecorderTrackCount>
+                <!--Optional:-->
+                <RegionCode>string</RegionCode>
+                <!--Optional:-->
+                <RegionOfOrigin>string</RegionOfOrigin>
+                <!--Optional:-->
+                <ReleaseDate>string</ReleaseDate>
+                <!--Zero or more repetitions:-->
+                <ReturnMethod>string</ReturnMethod>
+                <!--Optional:-->
+                <RemovableMemory>string</RemovableMemory>
+                <!--Optional:-->
+                <ResolutionModes>string</ResolutionModes>
+                <!--Optional:-->
+                <ReturnPolicy>string</ReturnPolicy>
+                <!--Optional:-->
+                <RingSize>string</RingSize>
+                <!--Optional:-->
+                <SafetyWarning>string</SafetyWarning>
+                <!--Optional:-->
+                <SalesRestriction>string</SalesRestriction>
+                <!--Optional:-->
+                <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+                <!--Optional:-->
+                <SettingType>string</SettingType>
+                <!--Optional:-->
+                <Size>string</Size>
+                <!--Optional:-->
+                <SKU>string</SKU>
+                <!--Optional:-->
+                <SoldInStores>string</SoldInStores>
+                <!--Optional:-->
+                <SizePerPearl>string</SizePerPearl>
+                <!--Optional:-->
+                <SkillLevel>string</SkillLevel>
+                <!--Optional:-->
+                <SoundCardDescription>string</SoundCardDescription>
+                <!--Optional:-->
+                <SpeakerCount>200</SpeakerCount>
+                <!--Optional:-->
+                <SpeakerDescription>string</SpeakerDescription>
+                <!--Zero or more repetitions:-->
+                <SpecialFeatures>string</SpecialFeatures>
+                <!--Optional:-->
+                <StoneClarity>string</StoneClarity>
+                <!--Optional:-->
+                <StoneColor>string</StoneColor>
+                <!--Optional:-->
+                <StoneCut>string</StoneCut>
+                <!--Optional:-->
+                <StoneShape>string</StoneShape>
+                <!--Optional:-->
+                <StoneWeight Units="string">1000.00</StoneWeight>
+                <!--Optional:-->
+                <Studio>string</Studio>
+                <!--Optional:-->
+                <SubscriptionLength Units="string">200</SubscriptionLength>
+                <!--Zero or more repetitions:-->
+                <SupportedImageType>string</SupportedImageType>
+                <!--Optional:-->
+                <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+                <!--Optional:-->
+                <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+                <!--Optional:-->
+                <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+                <!--Optional:-->
+                <SystemMemoryType>string</SystemMemoryType>
+                <!--Optional:-->
+                <TellingPageIndicator>string</TellingPageIndicator>
+                <!--Optional:-->
+                <TheatricalReleaseDate>string</TheatricalReleaseDate>
+                <!--Optional:-->
+                <Title>string</Title>
+                <!--Optional:-->
+                <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+                <!--Optional:-->
+                <TotalExternalBaysFree>200</TotalExternalBaysFree>
+                <!--Optional:-->
+                <TotalFirewirePorts>200</TotalFirewirePorts>
+                <!--Optional:-->
+                <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+                <!--Optional:-->
+                <TotalInternalBaysFree>200</TotalInternalBaysFree>
+                <!--Optional:-->
+                <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+                <!--Optional:-->
+                <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+                <!--Optional:-->
+                <TotalParallelPorts>200</TotalParallelPorts>
+                <!--Optional:-->
+                <TotalPCCardSlots>200</TotalPCCardSlots>
+                <!--Optional:-->
+                <TotalPCISlotsFree>200</TotalPCISlotsFree>
+                <!--Optional:-->
+                <TotalSerialPorts>200</TotalSerialPorts>
+                <!--Optional:-->
+                <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+                <!--Optional:-->
+                <TotalUSB2Ports>200</TotalUSB2Ports>
+                <!--Optional:-->
+                <TotalUSBPorts>200</TotalUSBPorts>
+                <!--Optional:-->
+                <TotalVGAOutPorts>200</TotalVGAOutPorts>
+                <!--Optional:-->
+                <UPC>string</UPC>
+                <!--Optional:-->
+                <VariationDenomination>string</VariationDenomination>
+                <!--Optional:-->
+                <VariationDescription>string</VariationDescription>
+                <!--Optional:-->
+                <VendorRebate>
+                  <!--Optional:-->
+                  <Type>string</Type>
+                  <!--Optional:-->
+                  <StartDate>string</StartDate>
+                  <!--Optional:-->
+                  <EndDate>string</EndDate>
+                </VendorRebate>
+                <!--Optional:-->
+                <Warranty>string</Warranty>
+                <!--Optional:-->
+                <WatchMovementType>string</WatchMovementType>
+                <!--Optional:-->
+                <WebsiteBuyability>string</WebsiteBuyability>
+                <!--Optional:-->
+                <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+                <!--Optional:-->
+                <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+              </MerchantItemAttributes>
+              <!--Optional:-->
+              <Collections>
+                <!--Zero or more repetitions:-->
+                <Collection>
+                  <!--Optional:-->
+                  <CollectionSummary>
+                    <!--Optional:-->
+                    <LowestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestListPrice>
+                    <!--Optional:-->
+                    <HighestListPrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestListPrice>
+                    <!--Optional:-->
+                    <LowestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </LowestSalePrice>
+                    <!--Optional:-->
+                    <HighestSalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </HighestSalePrice>
+                  </CollectionSummary>
+                  <!--Optional:-->
+                  <CollectionParent>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionParent>
+                  <!--Zero or more repetitions:-->
+                  <CollectionItem>
+                    <!--Optional:-->
+                    <ASIN>string</ASIN>
+                    <!--Optional:-->
+                    <Title>string</Title>
+                  </CollectionItem>
+                </Collection>
+              </Collections>
+              <!--Optional:-->
+              <Subjects>
+                <!--Zero or more repetitions:-->
+                <Subject>string</Subject>
+              </Subjects>
+              <!--Optional:-->
+              <OfferSummary>
+                <!--Optional:-->
+                <LowestNewPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestNewPrice>
+                <!--Optional:-->
+                <LowestUsedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestUsedPrice>
+                <!--Optional:-->
+                <LowestCollectiblePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestCollectiblePrice>
+                <!--Optional:-->
+                <LowestRefurbishedPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestRefurbishedPrice>
+                <!--Optional:-->
+                <TotalNew>string</TotalNew>
+                <!--Optional:-->
+                <TotalUsed>string</TotalUsed>
+                <!--Optional:-->
+                <TotalCollectible>string</TotalCollectible>
+                <!--Optional:-->
+                <TotalRefurbished>string</TotalRefurbished>
+              </OfferSummary>
+              <!--Optional:-->
+              <Offers>
+                <!--Optional:-->
+                <TotalOffers>200</TotalOffers>
+                <!--Optional:-->
+                <TotalOfferPages>200</TotalOfferPages>
+                <!--Zero or more repetitions:-->
+                <Offer>
+                  <!--Optional:-->
+                  <Merchant>
+                    <MerchantId>string</MerchantId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                  </Merchant>
+                  <!--Optional:-->
+                  <Seller>
+                    <SellerId>string</SellerId>
+                    <!--Optional:-->
+                    <SellerName>string</SellerName>
+                    <!--Optional:-->
+                    <SellerLegalName>string</SellerLegalName>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <GlancePage>string</GlancePage>
+                    <!--Optional:-->
+                    <About>string</About>
+                    <!--Optional:-->
+                    <MoreAbout>string</MoreAbout>
+                    <!--Optional:-->
+                    <Location>
+                      <!--Optional:-->
+                      <UserDefinedLocation>string</UserDefinedLocation>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </Location>
+                    <!--Optional:-->
+                    <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                    <!--Optional:-->
+                    <TotalFeedback>200</TotalFeedback>
+                    <!--Optional:-->
+                    <TotalFeedbackPages>200</TotalFeedbackPages>
+                    <!--Optional:-->
+                    <SellerFeedbackSummary>
+                      <!--Zero or more repetitions:-->
+                      <FeedbackDateRange Period="string">
+                        <!--Zero or more repetitions:-->
+                        <SellerFeedbackRating Type="string">
+                          <!--Optional:-->
+                          <Count>200</Count>
+                          <!--Optional:-->
+                          <Percentage>200</Percentage>
+                        </SellerFeedbackRating>
+                      </FeedbackDateRange>
+                    </SellerFeedbackSummary>
+                    <!--Optional:-->
+                    <SellerFeedback>
+                      <!--1 or more repetitions:-->
+                      <Feedback>
+                        <!--Optional:-->
+                        <Rating>200</Rating>
+                        <!--Optional:-->
+                        <Comment>string</Comment>
+                        <!--Optional:-->
+                        <Date>string</Date>
+                        <!--Optional:-->
+                        <RatedBy>string</RatedBy>
+                      </Feedback>
+                    </SellerFeedback>
+                  </Seller>
+                  <!--Optional:-->
+                  <OfferAttributes>
+                    <!--Optional:-->
+                    <Condition>string</Condition>
+                    <!--Optional:-->
+                    <SubCondition>string</SubCondition>
+                    <!--Optional:-->
+                    <ConditionNote>string</ConditionNote>
+                    <!--Optional:-->
+                    <WillShipExpedited>false</WillShipExpedited>
+                    <!--Optional:-->
+                    <WillShipInternational>false</WillShipInternational>
+                  </OfferAttributes>
+                  <!--Zero or more repetitions:-->
+                  <OfferListing>
+                    <!--Optional:-->
+                    <OfferListingId>string</OfferListingId>
+                    <!--Optional:-->
+                    <ExchangeId>string</ExchangeId>
+                    <!--Optional:-->
+                    <Price>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Price>
+                    <!--Optional:-->
+                    <SalePrice>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </SalePrice>
+                    <!--Optional:-->
+                    <AmountSaved>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </AmountSaved>
+                    <!--Optional:-->
+                    <PercentageSaved>200</PercentageSaved>
+                    <!--Optional:-->
+                    <Availability>string</Availability>
+                    <!--Optional:-->
+                    <AvailabilityAttributes>
+                      <!--Optional:-->
+                      <AvailabilityType>string</AvailabilityType>
+                      <!--Optional:-->
+                      <IsPreorder>false</IsPreorder>
+                      <!--Optional:-->
+                      <MinimumHours>100</MinimumHours>
+                      <!--Optional:-->
+                      <MaximumHours>100</MaximumHours>
+                    </AvailabilityAttributes>
+                    <!--Optional:-->
+                    <Quantity>100</Quantity>
+                    <!--Optional:-->
+                    <ISPUStoreAddress>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Address1>string</Address1>
+                      <!--Optional:-->
+                      <Address2>string</Address2>
+                      <!--Optional:-->
+                      <Address3>string</Address3>
+                      <!--Optional:-->
+                      <City>string</City>
+                      <!--Optional:-->
+                      <State>string</State>
+                      <!--Optional:-->
+                      <PostalCode>string</PostalCode>
+                      <!--Optional:-->
+                      <Country>string</Country>
+                    </ISPUStoreAddress>
+                    <!--Optional:-->
+                    <ISPUStoreHours>string</ISPUStoreHours>
+                    <!--Optional:-->
+                    <IsEligibleForSuperSaverShipping>true</IsEligibleForSuperSaverShipping>
+                    <!--Optional:-->
+                    <SalesRestriction>string</SalesRestriction>
+                    <!--Zero or more repetitions:-->
+                    <ShippingCharge>
+                      <ShippingType>string</ShippingType>
+                      <ShippingPrice>
+                        <!--Optional:-->
+                        <Amount>100</Amount>
+                        <!--Optional:-->
+                        <CurrencyCode>string</CurrencyCode>
+                        <FormattedPrice>string</FormattedPrice>
+                      </ShippingPrice>
+                    </ShippingCharge>
+                  </OfferListing>
+                  <!--Optional:-->
+                  <LoyaltyPoints>
+                    <!--Optional:-->
+                    <Points>200</Points>
+                    <!--Optional:-->
+                    <TypicalRedemptionValue>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </TypicalRedemptionValue>
+                  </LoyaltyPoints>
+                  <!--Optional:-->
+                  <Promotions>
+                    <!--Zero or more repetitions:-->
+                    <Promotion>
+                      <!--Optional:-->
+                      <Summary>
+                        <PromotionId>string</PromotionId>
+                        <!--Optional:-->
+                        <Category>string</Category>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                        <!--Optional:-->
+                        <BenefitDescription>string</BenefitDescription>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                      </Summary>
+                      <!--Optional:-->
+                      <Details>
+                        <MerchantId>string</MerchantId>
+                        <OwningMerchantId>string</OwningMerchantId>
+                        <PromotionId>string</PromotionId>
+                        <PromotionCategory>string</PromotionCategory>
+                        <!--Optional:-->
+                        <MerchantPromotionId>string</MerchantPromotionId>
+                        <!--Optional:-->
+                        <GroupClaimCode>string</GroupClaimCode>
+                        <!--Optional:-->
+                        <CouponCombinationType>string</CouponCombinationType>
+                        <!--Optional:-->
+                        <StartDate>string</StartDate>
+                        <!--Optional:-->
+                        <EndDate>string</EndDate>
+                        <!--Optional:-->
+                        <TermsAndConditions>string</TermsAndConditions>
+                        <!--Optional:-->
+                        <EligibilityRequirements>
+                          <!--Zero or more repetitions:-->
+                          <EligibilityRequirement>
+                            <EligibilityRequirementType>string</EligibilityRequirementType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <CurrencyAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </CurrencyAmount>
+                          </EligibilityRequirement>
+                        </EligibilityRequirements>
+                        <!--Optional:-->
+                        <Benefits>
+                          <!--Zero or more repetitions:-->
+                          <Benefit>
+                            <BenefitType>string</BenefitType>
+                            <ComponentType>string</ComponentType>
+                            <!--Optional:-->
+                            <Quantity>3</Quantity>
+                            <!--Optional:-->
+                            <PercentOff>1.051732E7</PercentOff>
+                            <!--Optional:-->
+                            <FixedAmount>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </FixedAmount>
+                            <!--Optional:-->
+                            <Ceiling>
+                              <!--Optional:-->
+                              <Amount>100</Amount>
+                              <!--Optional:-->
+                              <CurrencyCode>string</CurrencyCode>
+                              <FormattedPrice>string</FormattedPrice>
+                            </Ceiling>
+                          </Benefit>
+                        </Benefits>
+                        <!--Optional:-->
+                        <ItemApplicability>
+                          <ASIN>string</ASIN>
+                          <IsInBenefitSet>true</IsInBenefitSet>
+                          <IsInEligibilityRequirementSet>false</IsInEligibilityRequirementSet>
+                        </ItemApplicability>
+                        <!--Optional:-->
+                        <MerchandisingMessage>string</MerchandisingMessage>
+                      </Details>
+                    </Promotion>
+                  </Promotions>
+                </Offer>
+              </Offers>
+              <!--Optional:-->
+              <VariationSummary>
+                <!--Optional:-->
+                <LowestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestPrice>
+                <!--Optional:-->
+                <HighestPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestPrice>
+                <!--Optional:-->
+                <LowestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestSalePrice>
+                <!--Optional:-->
+                <HighestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestSalePrice>
+                <!--Optional:-->
+                <SingleMerchantId>string</SingleMerchantId>
+              </VariationSummary>
+              <!--Optional:-->
+              <Variations>
+                <!--Optional:-->
+                <TotalVariations>200</TotalVariations>
+                <!--Optional:-->
+                <TotalVariationPages>200</TotalVariationPages>
+                <!--Optional:-->
+                <VariationDimensions>
+                  <!--1 or more repetitions:-->
+                  <VariationDimension>string</VariationDimension>
+                </VariationDimensions>
+                <!--Zero or more repetitions:-->
+                <Item/>
+              </Variations>
+              <!--Optional:-->
+              <CustomerReviews>
+                <!--Optional:-->
+                <AverageRating>1000.00</AverageRating>
+                <!--Optional:-->
+                <TotalReviews>200</TotalReviews>
+                <!--Optional:-->
+                <TotalReviewPages>200</TotalReviewPages>
+                <!--Zero or more repetitions:-->
+                <Review>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Rating>1000.00</Rating>
+                  <!--Optional:-->
+                  <HelpfulVotes>200</HelpfulVotes>
+                  <!--Optional:-->
+                  <CustomerId>string</CustomerId>
+                  <!--Optional:-->
+                  <Reviewer>
+                    <!--Optional:-->
+                    <CustomerId>string</CustomerId>
+                    <!--Optional:-->
+                    <Name>string</Name>
+                    <!--Optional:-->
+                    <Nickname>string</Nickname>
+                    <!--Optional:-->
+                    <Location>string</Location>
+                  </Reviewer>
+                  <!--Optional:-->
+                  <TotalVotes>200</TotalVotes>
+                  <!--Optional:-->
+                  <Date>string</Date>
+                  <!--Optional:-->
+                  <Summary>string</Summary>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                </Review>
+              </CustomerReviews>
+              <!--Optional:-->
+              <EditorialReviews>
+                <!--Zero or more repetitions:-->
+                <EditorialReview>
+                  <!--Optional:-->
+                  <Source>string</Source>
+                  <!--Optional:-->
+                  <Content>string</Content>
+                  <!--Optional:-->
+                  <IsLinkSuppressed>true</IsLinkSuppressed>
+                </EditorialReview>
+              </EditorialReviews>
+              <!--Optional:-->
+              <SimilarProducts>
+                <!--1 or more repetitions:-->
+                <SimilarProduct>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </SimilarProduct>
+              </SimilarProducts>
+              <!--Optional:-->
+              <Accessories>
+                <!--1 or more repetitions:-->
+                <Accessory>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </Accessory>
+              </Accessories>
+              <!--Optional:-->
+              <Tracks>
+                <!--1 or more repetitions:-->
+                <Disc Number="201">
+                  <!--1 or more repetitions:-->
+                  <Track Number="201">string</Track>
+                </Disc>
+              </Tracks>
+              <!--Optional:-->
+              <BrowseNodes>
+                <!--Zero or more repetitions:-->
+                <BrowseNode>
+                  <!--Optional:-->
+                  <BrowseNodeId>string</BrowseNodeId>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <IsCategoryRoot>false</IsCategoryRoot>
+                  <!--Optional:-->
+                  <Properties>
+                    <!--1 or more repetitions:-->
+                    <Property>
+                      <!--Optional:-->
+                      <Name>string</Name>
+                      <!--Optional:-->
+                      <Value>string</Value>
+                    </Property>
+                  </Properties>
+                  <!--Optional:-->
+                  <Children>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Children>
+                  <!--Optional:-->
+                  <Ancestors>
+                    <!--1 or more repetitions:-->
+                    <BrowseNode/>
+                  </Ancestors>
+                  <!--Optional:-->
+                  <TopSellers>
+                    <!--1 or more repetitions:-->
+                    <TopSeller>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </TopSeller>
+                  </TopSellers>
+                  <!--Optional:-->
+                  <NewReleases>
+                    <!--1 or more repetitions:-->
+                    <NewRelease>
+                      <!--Optional:-->
+                      <ASIN>string</ASIN>
+                      <!--Optional:-->
+                      <Title>string</Title>
+                    </NewRelease>
+                  </NewReleases>
+                </BrowseNode>
+              </BrowseNodes>
+              <!--Optional:-->
+              <SearchInside>
+                <!--Optional:-->
+                <TotalExcerpts>200</TotalExcerpts>
+                <!--Optional:-->
+                <Excerpt>
+                  <!--Optional:-->
+                  <Checksum>string</Checksum>
+                  <!--Optional:-->
+                  <PageType>string</PageType>
+                  <!--Optional:-->
+                  <PageNumber>string</PageNumber>
+                  <!--Optional:-->
+                  <SequenceNumber>string</SequenceNumber>
+                  <!--Optional:-->
+                  <Text>string</Text>
+                </Excerpt>
+              </SearchInside>
+              <!--Optional:-->
+              <ListmaniaLists>
+                <!--1 or more repetitions:-->
+                <ListmaniaList>
+                  <ListId>string</ListId>
+                  <!--Optional:-->
+                </ListmaniaList>
+              </ListmaniaLists>
+              <!--Optional:-->
+            </Item>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+      <!--Zero or more repetitions:-->
+    </List>
+  </Lists>
+</ListSearchResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingLookupResponse.xml
new file mode 100644
index 0000000..e3b5a2b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingLookupResponse.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SellerListingLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <SellerListings>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <SellerListing>
+      <!--Optional:-->
+      <ExchangeId>string</ExchangeId>
+      <!--Optional:-->
+      <ListingId>string</ListingId>
+      <!--Optional:-->
+      <ASIN>string</ASIN>
+      <!--Optional:-->
+      <SKU>string</SKU>
+      <!--Optional:-->
+      <UPC>string</UPC>
+      <!--Optional:-->
+      <EAN>string</EAN>
+      <!--Optional:-->
+      <WillShipExpedited>false</WillShipExpedited>
+      <!--Optional:-->
+      <WillShipInternational>true</WillShipInternational>
+      <!--Optional:-->
+      <Title>string</Title>
+      <!--Optional:-->
+      <Price>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </Price>
+      <!--Optional:-->
+      <StartDate>string</StartDate>
+      <!--Optional:-->
+      <EndDate>string</EndDate>
+      <!--Optional:-->
+      <Status>string</Status>
+      <!--Optional:-->
+      <Quantity>string</Quantity>
+      <!--Optional:-->
+      <Condition>string</Condition>
+      <!--Optional:-->
+      <SubCondition>string</SubCondition>
+      <!--Optional:-->
+      <Seller>
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerName>string</SellerName>
+        <!--Optional:-->
+        <SellerLegalName>string</SellerLegalName>
+        <!--Optional:-->
+        <Nickname>string</Nickname>
+        <!--Optional:-->
+        <GlancePage>string</GlancePage>
+        <!--Optional:-->
+        <About>string</About>
+        <!--Optional:-->
+        <MoreAbout>string</MoreAbout>
+        <!--Optional:-->
+        <Location>
+          <!--Optional:-->
+          <UserDefinedLocation>string</UserDefinedLocation>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Location>
+        <!--Optional:-->
+        <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+        <!--Optional:-->
+        <TotalFeedback>200</TotalFeedback>
+        <!--Optional:-->
+        <TotalFeedbackPages>200</TotalFeedbackPages>
+        <!--Optional:-->
+        <SellerFeedbackSummary>
+          <!--Zero or more repetitions:-->
+          <FeedbackDateRange Period="string">
+            <!--Zero or more repetitions:-->
+            <SellerFeedbackRating Type="string">
+              <!--Optional:-->
+              <Count>200</Count>
+              <!--Optional:-->
+              <Percentage>200</Percentage>
+            </SellerFeedbackRating>
+          </FeedbackDateRange>
+        </SellerFeedbackSummary>
+        <!--Optional:-->
+        <SellerFeedback>
+          <!--1 or more repetitions:-->
+          <Feedback>
+            <!--Optional:-->
+            <Rating>200</Rating>
+            <!--Optional:-->
+            <Comment>string</Comment>
+            <!--Optional:-->
+            <Date>string</Date>
+            <!--Optional:-->
+            <RatedBy>string</RatedBy>
+          </Feedback>
+        </SellerFeedback>
+      </Seller>
+    </SellerListing>
+  </SellerListings>
+</SellerListingLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingSearchResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingSearchResponse.xml
new file mode 100644
index 0000000..b901fe6
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerListingSearchResponse.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SellerListingSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <SellerListings>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <SellerListing>
+      <!--Optional:-->
+      <ExchangeId>string</ExchangeId>
+      <!--Optional:-->
+      <ListingId>string</ListingId>
+      <!--Optional:-->
+      <ASIN>string</ASIN>
+      <!--Optional:-->
+      <SKU>string</SKU>
+      <!--Optional:-->
+      <UPC>string</UPC>
+      <!--Optional:-->
+      <EAN>string</EAN>
+      <!--Optional:-->
+      <WillShipExpedited>false</WillShipExpedited>
+      <!--Optional:-->
+      <WillShipInternational>true</WillShipInternational>
+      <!--Optional:-->
+      <Title>string</Title>
+      <!--Optional:-->
+      <Price>
+        <!--Optional:-->
+        <Amount>100</Amount>
+        <!--Optional:-->
+        <CurrencyCode>string</CurrencyCode>
+        <FormattedPrice>string</FormattedPrice>
+      </Price>
+      <!--Optional:-->
+      <StartDate>string</StartDate>
+      <!--Optional:-->
+      <EndDate>string</EndDate>
+      <!--Optional:-->
+      <Status>string</Status>
+      <!--Optional:-->
+      <Quantity>string</Quantity>
+      <!--Optional:-->
+      <Condition>string</Condition>
+      <!--Optional:-->
+      <SubCondition>string</SubCondition>
+      <!--Optional:-->
+      <Seller>
+        <SellerId>string</SellerId>
+        <!--Optional:-->
+        <SellerName>string</SellerName>
+        <!--Optional:-->
+        <SellerLegalName>string</SellerLegalName>
+        <!--Optional:-->
+        <Nickname>string</Nickname>
+        <!--Optional:-->
+        <GlancePage>string</GlancePage>
+        <!--Optional:-->
+        <About>string</About>
+        <!--Optional:-->
+        <MoreAbout>string</MoreAbout>
+        <!--Optional:-->
+        <Location>
+          <!--Optional:-->
+          <UserDefinedLocation>string</UserDefinedLocation>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Location>
+        <!--Optional:-->
+        <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+        <!--Optional:-->
+        <TotalFeedback>200</TotalFeedback>
+        <!--Optional:-->
+        <TotalFeedbackPages>200</TotalFeedbackPages>
+        <!--Optional:-->
+        <SellerFeedbackSummary>
+          <!--Zero or more repetitions:-->
+          <FeedbackDateRange Period="string">
+            <!--Zero or more repetitions:-->
+            <SellerFeedbackRating Type="string">
+              <!--Optional:-->
+              <Count>200</Count>
+              <!--Optional:-->
+              <Percentage>200</Percentage>
+            </SellerFeedbackRating>
+          </FeedbackDateRange>
+        </SellerFeedbackSummary>
+        <!--Optional:-->
+        <SellerFeedback>
+          <!--1 or more repetitions:-->
+          <Feedback>
+            <!--Optional:-->
+            <Rating>200</Rating>
+            <!--Optional:-->
+            <Comment>string</Comment>
+            <!--Optional:-->
+            <Date>string</Date>
+            <!--Optional:-->
+            <RatedBy>string</RatedBy>
+          </Feedback>
+        </SellerFeedback>
+      </Seller>
+    </SellerListing>
+  </SellerListings>
+</SellerListingSearchResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerLookupResponse.xml
new file mode 100644
index 0000000..31e015d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SellerLookupResponse.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SellerLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Sellers>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Zero or more repetitions:-->
+    <Seller>
+      <SellerId>string</SellerId>
+      <!--Optional:-->
+      <SellerName>string</SellerName>
+      <!--Optional:-->
+      <SellerLegalName>string</SellerLegalName>
+      <!--Optional:-->
+      <Nickname>string</Nickname>
+      <!--Optional:-->
+      <GlancePage>string</GlancePage>
+      <!--Optional:-->
+      <About>string</About>
+      <!--Optional:-->
+      <MoreAbout>string</MoreAbout>
+      <!--Optional:-->
+      <Location>
+        <!--Optional:-->
+        <UserDefinedLocation>string</UserDefinedLocation>
+        <!--Optional:-->
+        <City>string</City>
+        <!--Optional:-->
+        <State>string</State>
+        <!--Optional:-->
+        <Country>string</Country>
+      </Location>
+      <!--Optional:-->
+      <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+      <!--Optional:-->
+      <TotalFeedback>200</TotalFeedback>
+      <!--Optional:-->
+      <TotalFeedbackPages>200</TotalFeedbackPages>
+      <!--Optional:-->
+      <SellerFeedbackSummary>
+        <!--Zero or more repetitions:-->
+        <FeedbackDateRange Period="string">
+          <!--Zero or more repetitions:-->
+          <SellerFeedbackRating Type="string">
+            <!--Optional:-->
+            <Count>200</Count>
+            <!--Optional:-->
+            <Percentage>200</Percentage>
+          </SellerFeedbackRating>
+        </FeedbackDateRange>
+      </SellerFeedbackSummary>
+      <!--Optional:-->
+      <SellerFeedback>
+        <!--1 or more repetitions:-->
+        <Feedback>
+          <!--Optional:-->
+          <Rating>200</Rating>
+          <!--Optional:-->
+          <Comment>string</Comment>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <RatedBy>string</RatedBy>
+        </Feedback>
+      </SellerFeedback>
+    </Seller>
+  </Sellers>
+</SellerLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SimilarityLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SimilarityLookupResponse.xml
new file mode 100644
index 0000000..8d28cf7
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/SimilarityLookupResponse.xml
@@ -0,0 +1,2079 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SimilarityLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Items>
+    <!--Optional:-->
+    <CorrectedQuery>
+      <!--Optional:-->
+      <Keywords>string</Keywords>
+      <!--Optional:-->
+      <Message>string</Message>
+    </CorrectedQuery>
+    <!--Optional:-->
+    <Qid>string</Qid>
+    <!--Optional:-->
+    <EngineQuery>string</EngineQuery>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--Optional:-->
+    <SearchResultsMap>
+      <!--1 or more repetitions:-->
+      <SearchIndex>
+        <IndexName>string</IndexName>
+        <!--Optional:-->
+        <Results>200</Results>
+        <!--Optional:-->
+        <Pages>200</Pages>
+        <!--Optional:-->
+        <CorrectedQuery>
+          <!--Optional:-->
+          <Keywords>string</Keywords>
+          <!--Optional:-->
+          <Message>string</Message>
+        </CorrectedQuery>
+        <RelevanceRank>201</RelevanceRank>
+        <!--1 or more repetitions:-->
+        <ASIN>string</ASIN>
+      </SearchIndex>
+    </SearchResultsMap>
+    <!--Zero or more repetitions:-->
+    <Item>
+      <!--Optional:-->
+      <AlternateVersions>
+        <!--Zero or more repetitions:-->
+        <AlternateVersion>
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+          <!--Optional:-->
+          <Binding>string</Binding>
+        </AlternateVersion>
+      </AlternateVersions>
+      <ASIN>string</ASIN>
+      <!--Optional:-->
+      <ParentASIN>string</ParentASIN>
+      <!--Optional:-->
+      <DetailPageURL>string</DetailPageURL>
+      <!--Optional:-->
+      <SalesRank>string</SalesRank>
+      <!--Optional:-->
+      <SmallImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </SmallImage>
+      <!--Optional:-->
+      <MediumImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </MediumImage>
+      <!--Optional:-->
+      <LargeImage>
+        <URL>string</URL>
+        <Height Units="string">1000.00</Height>
+        <Width Units="string">1000.00</Width>
+        <!--Optional:-->
+        <IsVerified>string</IsVerified>
+      </LargeImage>
+      <!--Zero or more repetitions:-->
+      <ImageSets>
+        <!--Optional:-->
+        <MerchantId>string</MerchantId>
+        <!--Zero or more repetitions:-->
+        <ImageSet Category="string">
+          <!--Optional:-->
+          <SwatchImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SwatchImage>
+          <!--Optional:-->
+          <SmallImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SmallImage>
+          <!--Optional:-->
+          <ThumbnailImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </ThumbnailImage>
+          <!--Optional:-->
+          <TinyImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </TinyImage>
+          <!--Optional:-->
+          <MediumImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </MediumImage>
+          <!--Optional:-->
+          <LargeImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </LargeImage>
+        </ImageSet>
+      </ImageSets>
+      <!--Optional:-->
+      <ItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Zero or more repetitions:-->
+        <Age>string</Age>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <AnalogVideoFormat>string</AnalogVideoFormat>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Zero or more repetitions:-->
+        <Category>string</Category>
+        <!--Zero or more repetitions:-->
+        <CategoryBin>string</CategoryBin>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Zero or more repetitions:-->
+        <Character>string</Character>
+        <!--Optional:-->
+        <CEROAgeRating>string</CEROAgeRating>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <ClubType>string</ClubType>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Zero or more repetitions:-->
+        <CompatibleDevices>string</CompatibleDevices>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Zero or more repetitions:-->
+        <DataLinkProtocol>string</DataLinkProtocol>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplayColorSupport>string</DisplayColorSupport>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Zero or more repetitions:-->
+        <EducationalFocus>string</EducationalFocus>
+        <!--Zero or more repetitions:-->
+        <Ethnicity>string</Ethnicity>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FilmColorType>string</FilmColorType>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FlavorName>string</FlavorName>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Zero or more repetitions:-->
+        <FormFactor>string</FormFactor>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Zero or more repetitions:-->
+        <GemTypeSetElement>string</GemTypeSetElement>
+        <!--Zero or more repetitions:-->
+        <Gender>string</Gender>
+        <!--Optional:-->
+        <Genre>string</Genre>
+        <!--Optional:-->
+        <GLProductGroup>string</GLProductGroup>
+        <!--Optional:-->
+        <GolfClubFlex>string</GolfClubFlex>
+        <!--Optional:-->
+        <GolfClubLoft>string</GolfClubLoft>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HandOrientation>string</HandOrientation>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">1000.00</HardDiskSize>
+        <!--Optional:-->
+        <HardDiskInterface>string</HardDiskInterface>
+        <!--Optional:-->
+        <HardwarePlatform>string</HardwarePlatform>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>true</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>true</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>true</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>true</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>false</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>false</IncludesMp3Player>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Zero or more repetitions:-->
+        <IngredientsSetElement>string</IngredientsSetElement>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Zero or more repetitions:-->
+        <Interest>string</Interest>
+        <!--Optional:-->
+        <IsAdultProduct>false</IsAdultProduct>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>true</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IsPreannounce>false</IsPreannounce>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Zero or more repetitions:-->
+        <LanguageName>string</LanguageName>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LensType>string</LensType>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Zero or more repetitions:-->
+        <MaterialTypeSetElement>string</MaterialTypeSetElement>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MediaType>string</MediaType>
+        <!--Optional:-->
+        <MemorySlotsAvailable>string</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OperatingSystem>string</OperatingSystem>
+        <!--Optional:-->
+        <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PackageQuantity>200</PackageQuantity>
+        <!--Zero or more repetitions:-->
+        <PantLength>string</PantLength>
+        <!--Zero or more repetitions:-->
+        <PantSize>string</PantSize>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Zero or more repetitions:-->
+        <PrimaryColor>string</PrimaryColor>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+        <!--Optional:-->
+        <ProductTypeName>string</ProductTypeName>
+        <!--Optional:-->
+        <ProductTypeSubcategory>string</ProductTypeSubcategory>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <RemovableStorage>string</RemovableStorage>
+        <!--Optional:-->
+        <RequiredVoltageRange>string</RequiredVoltageRange>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <RunningTime Units="string">1000.00</RunningTime>
+        <!--Optional:-->
+        <ScentName>string</ScentName>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <ShaftMaterialType>string</ShaftMaterialType>
+        <!--Zero or more repetitions:-->
+        <ShoeSize>string</ShoeSize>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <Style>string</Style>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SupportedMediaSize>string</SupportedMediaSize>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Zero or more repetitions:-->
+        <TargetBrand>string</TargetBrand>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WEEETaxValue>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </WEEETaxValue>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </ItemAttributes>
+      <!--Optional:-->
+      <MerchantItemAttributes>
+        <!--Zero or more repetitions:-->
+        <Actor>string</Actor>
+        <!--Optional:-->
+        <Address>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <Address1>string</Address1>
+          <!--Optional:-->
+          <Address2>string</Address2>
+          <!--Optional:-->
+          <Address3>string</Address3>
+          <!--Optional:-->
+          <City>string</City>
+          <!--Optional:-->
+          <State>string</State>
+          <!--Optional:-->
+          <PostalCode>string</PostalCode>
+          <!--Optional:-->
+          <Country>string</Country>
+        </Address>
+        <!--Optional:-->
+        <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+        <!--Optional:-->
+        <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+        <!--Optional:-->
+        <ApertureModes>string</ApertureModes>
+        <!--Zero or more repetitions:-->
+        <Artist>string</Artist>
+        <!--Optional:-->
+        <AspectRatio>string</AspectRatio>
+        <!--Optional:-->
+        <AssemblyInstructions>string</AssemblyInstructions>
+        <!--Optional:-->
+        <AssemblyRequired>string</AssemblyRequired>
+        <!--Optional:-->
+        <AudienceRating>string</AudienceRating>
+        <!--Zero or more repetitions:-->
+        <AudioFormat>string</AudioFormat>
+        <!--Zero or more repetitions:-->
+        <Author>string</Author>
+        <!--Optional:-->
+        <BackFinding>string</BackFinding>
+        <!--Optional:-->
+        <BandMaterialType>string</BandMaterialType>
+        <!--Optional:-->
+        <BatteriesIncluded>string</BatteriesIncluded>
+        <!--Optional:-->
+        <BatteriesRequired>string</BatteriesRequired>
+        <!--Optional:-->
+        <Batteries Units="string">200</Batteries>
+        <!--Optional:-->
+        <BatteryDescription>string</BatteryDescription>
+        <!--Optional:-->
+        <BatteryType>string</BatteryType>
+        <!--Optional:-->
+        <BezelMaterialType>string</BezelMaterialType>
+        <!--Optional:-->
+        <Binding>string</Binding>
+        <!--Optional:-->
+        <Brand>string</Brand>
+        <!--Optional:-->
+        <CalendarType>string</CalendarType>
+        <!--Zero or more repetitions:-->
+        <CameraManualFeatures>string</CameraManualFeatures>
+        <!--Optional:-->
+        <CaseDiameter Units="string">1000.00</CaseDiameter>
+        <!--Optional:-->
+        <CaseMaterialType>string</CaseMaterialType>
+        <!--Optional:-->
+        <CaseThickness Units="string">1000.00</CaseThickness>
+        <!--Optional:-->
+        <CaseType>string</CaseType>
+        <!--Optional:-->
+        <CatalogNumber>string</CatalogNumber>
+        <!--Optional:-->
+        <CDRWDescription>string</CDRWDescription>
+        <!--Optional:-->
+        <ChainType>string</ChainType>
+        <!--Optional:-->
+        <ClaspType>string</ClaspType>
+        <!--Optional:-->
+        <ClothingSize>string</ClothingSize>
+        <!--Optional:-->
+        <Color>string</Color>
+        <!--Optional:-->
+        <Compatibility>string</Compatibility>
+        <!--Optional:-->
+        <ComputerHardwareType>string</ComputerHardwareType>
+        <!--Optional:-->
+        <ComputerPlatform>string</ComputerPlatform>
+        <!--Optional:-->
+        <Connectivity>string</Connectivity>
+        <!--Optional:-->
+        <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+        <!--Optional:-->
+        <Country>string</Country>
+        <!--Optional:-->
+        <CountryOfOrigin>string</CountryOfOrigin>
+        <!--Optional:-->
+        <CPUManufacturer>string</CPUManufacturer>
+        <!--Optional:-->
+        <CPUSpeed Units="string">1000.00</CPUSpeed>
+        <!--Optional:-->
+        <CPUType>string</CPUType>
+        <!--Zero or more repetitions:-->
+        <Creator Role="string">string</Creator>
+        <!--Optional:-->
+        <Cuisine>string</Cuisine>
+        <!--Optional:-->
+        <Customizable>string</Customizable>
+        <!--Optional:-->
+        <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+        <!--Optional:-->
+        <DeliveryOption>string</DeliveryOption>
+        <!--Optional:-->
+        <Department>string</Department>
+        <!--Optional:-->
+        <Description>string</Description>
+        <!--Optional:-->
+        <DeweyDecimalNumber>string</DeweyDecimalNumber>
+        <!--Optional:-->
+        <DialColor>string</DialColor>
+        <!--Optional:-->
+        <DialWindowMaterialType>string</DialWindowMaterialType>
+        <!--Optional:-->
+        <DigitalZoom Units="string">1000.00</DigitalZoom>
+        <!--Zero or more repetitions:-->
+        <Director>string</Director>
+        <!--Optional:-->
+        <DisplaySize Units="string">1000.00</DisplaySize>
+        <!--Optional:-->
+        <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+        <!--Optional:-->
+        <DVDLayers>200</DVDLayers>
+        <!--Optional:-->
+        <DVDRWDescription>string</DVDRWDescription>
+        <!--Optional:-->
+        <DVDSides>200</DVDSides>
+        <!--Optional:-->
+        <DPCI>string</DPCI>
+        <!--Optional:-->
+        <EAN>string</EAN>
+        <!--Optional:-->
+        <Edition>string</Edition>
+        <!--Optional:-->
+        <ESRBAgeRating>string</ESRBAgeRating>
+        <!--Optional:-->
+        <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+        <!--Optional:-->
+        <FabricType>string</FabricType>
+        <!--Optional:-->
+        <FaxNumber>string</FaxNumber>
+        <!--Zero or more repetitions:-->
+        <Feature>string</Feature>
+        <!--Optional:-->
+        <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+        <!--Optional:-->
+        <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+        <!--Zero or more repetitions:-->
+        <Format>string</Format>
+        <!--Optional:-->
+        <FixedShippingCharge>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </FixedShippingCharge>
+        <!--Optional:-->
+        <GemType>string</GemType>
+        <!--Optional:-->
+        <GraphicsCardInterface>string</GraphicsCardInterface>
+        <!--Optional:-->
+        <GraphicsDescription>string</GraphicsDescription>
+        <!--Optional:-->
+        <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+        <!--Optional:-->
+        <GuitarAttribute>string</GuitarAttribute>
+        <!--Optional:-->
+        <GuitarBridgeSystem>string</GuitarBridgeSystem>
+        <!--Optional:-->
+        <GuitarPickThickness>string</GuitarPickThickness>
+        <!--Optional:-->
+        <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+        <!--Optional:-->
+        <HardDiskCount>200</HardDiskCount>
+        <!--Optional:-->
+        <HardDiskSize Units="string">200</HardDiskSize>
+        <!--Optional:-->
+        <HasAutoFocus>false</HasAutoFocus>
+        <!--Optional:-->
+        <HasBurstMode>false</HasBurstMode>
+        <!--Optional:-->
+        <HasInCameraEditing>false</HasInCameraEditing>
+        <!--Optional:-->
+        <HasRedEyeReduction>false</HasRedEyeReduction>
+        <!--Optional:-->
+        <HasSelfTimer>true</HasSelfTimer>
+        <!--Optional:-->
+        <HasTripodMount>true</HasTripodMount>
+        <!--Optional:-->
+        <HasVideoOut>false</HasVideoOut>
+        <!--Optional:-->
+        <HasViewfinder>true</HasViewfinder>
+        <!--Optional:-->
+        <HazardousMaterialType>string</HazardousMaterialType>
+        <!--Optional:-->
+        <HoursOfOperation>string</HoursOfOperation>
+        <!--Optional:-->
+        <IncludedSoftware>string</IncludedSoftware>
+        <!--Optional:-->
+        <IncludesMp3Player>true</IncludesMp3Player>
+        <!--Optional:-->
+        <Indications>string</Indications>
+        <!--Optional:-->
+        <Ingredients>string</Ingredients>
+        <!--Optional:-->
+        <InstrumentKey>string</InstrumentKey>
+        <!--Optional:-->
+        <IsAutographed>true</IsAutographed>
+        <!--Optional:-->
+        <ISBN>string</ISBN>
+        <!--Optional:-->
+        <IsFragile>true</IsFragile>
+        <!--Optional:-->
+        <IsLabCreated>false</IsLabCreated>
+        <!--Optional:-->
+        <IsMemorabilia>false</IsMemorabilia>
+        <!--Optional:-->
+        <ISOEquivalent Units="string">200</ISOEquivalent>
+        <!--Optional:-->
+        <IssuesPerYear>string</IssuesPerYear>
+        <!--Optional:-->
+        <ItemDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </ItemDimensions>
+        <!--Optional:-->
+        <KeyboardDescription>string</KeyboardDescription>
+        <!--Optional:-->
+        <Label>string</Label>
+        <!--Optional:-->
+        <Languages>
+          <!--Zero or more repetitions:-->
+          <Language>
+            <Name>string</Name>
+            <!--Optional:-->
+            <Type>string</Type>
+            <!--Optional:-->
+            <AudioFormat>string</AudioFormat>
+          </Language>
+        </Languages>
+        <!--Optional:-->
+        <LegalDisclaimer>string</LegalDisclaimer>
+        <!--Optional:-->
+        <LineVoltage>string</LineVoltage>
+        <!--Optional:-->
+        <ListPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ListPrice>
+        <!--Optional:-->
+        <MacroFocusRange>string</MacroFocusRange>
+        <!--Optional:-->
+        <MagazineType>string</MagazineType>
+        <!--Optional:-->
+        <MalletHardness>string</MalletHardness>
+        <!--Optional:-->
+        <Manufacturer>string</Manufacturer>
+        <!--Optional:-->
+        <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+        <!--Optional:-->
+        <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+        <!--Optional:-->
+        <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+        <!--Optional:-->
+        <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+        <!--Optional:-->
+        <MaterialType>string</MaterialType>
+        <!--Optional:-->
+        <MaximumAperture Units="string">1000.00</MaximumAperture>
+        <!--Optional:-->
+        <MaximumColorDepth>string</MaximumColorDepth>
+        <!--Optional:-->
+        <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+        <!--Optional:-->
+        <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+        <!--Optional:-->
+        <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+        <!--Optional:-->
+        <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+        <!--Optional:-->
+        <MaximumResolution Units="string">1000.00</MaximumResolution>
+        <!--Optional:-->
+        <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+        <!--Optional:-->
+        <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+        <!--Optional:-->
+        <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+        <!--Optional:-->
+        <MemorySlotsAvailable>200</MemorySlotsAvailable>
+        <!--Optional:-->
+        <MetalStamp>string</MetalStamp>
+        <!--Optional:-->
+        <MetalType>string</MetalType>
+        <!--Optional:-->
+        <MiniMovieDescription>string</MiniMovieDescription>
+        <!--Optional:-->
+        <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+        <!--Optional:-->
+        <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+        <!--Optional:-->
+        <Model>string</Model>
+        <!--Optional:-->
+        <ModelYear>200</ModelYear>
+        <!--Optional:-->
+        <ModemDescription>string</ModemDescription>
+        <!--Optional:-->
+        <MonitorSize Units="string">1000.00</MonitorSize>
+        <!--Optional:-->
+        <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+        <!--Optional:-->
+        <MouseDescription>string</MouseDescription>
+        <!--Optional:-->
+        <MPN>string</MPN>
+        <!--Optional:-->
+        <MusicalStyle>string</MusicalStyle>
+        <!--Optional:-->
+        <NativeResolution>string</NativeResolution>
+        <!--Optional:-->
+        <Neighborhood>string</Neighborhood>
+        <!--Optional:-->
+        <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+        <!--Optional:-->
+        <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+        <!--Optional:-->
+        <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+        <!--Optional:-->
+        <NumberOfDiscs>200</NumberOfDiscs>
+        <!--Optional:-->
+        <NumberOfIssues>200</NumberOfIssues>
+        <!--Optional:-->
+        <NumberOfItems>200</NumberOfItems>
+        <!--Optional:-->
+        <NumberOfKeys>200</NumberOfKeys>
+        <!--Optional:-->
+        <NumberOfPages>200</NumberOfPages>
+        <!--Optional:-->
+        <NumberOfPearls>200</NumberOfPearls>
+        <!--Optional:-->
+        <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+        <!--Optional:-->
+        <NumberOfStones>200</NumberOfStones>
+        <!--Optional:-->
+        <NumberOfStrings>200</NumberOfStrings>
+        <!--Optional:-->
+        <NumberOfTracks>200</NumberOfTracks>
+        <!--Optional:-->
+        <OpticalZoom Units="string">1000.00</OpticalZoom>
+        <!--Optional:-->
+        <OriginalReleaseDate>string</OriginalReleaseDate>
+        <!--Optional:-->
+        <OutputWattage>200</OutputWattage>
+        <!--Optional:-->
+        <PackageDimensions>
+          <!--Optional:-->
+          <Height Units="string">1000.00</Height>
+          <!--Optional:-->
+          <Length Units="string">1000.00</Length>
+          <!--Optional:-->
+          <Weight Units="string">1000.00</Weight>
+          <!--Optional:-->
+          <Width Units="string">1000.00</Width>
+        </PackageDimensions>
+        <!--Optional:-->
+        <PearlLustre>string</PearlLustre>
+        <!--Optional:-->
+        <PearlMinimumColor>string</PearlMinimumColor>
+        <!--Optional:-->
+        <PearlShape>string</PearlShape>
+        <!--Optional:-->
+        <PearlStringingMethod>string</PearlStringingMethod>
+        <!--Optional:-->
+        <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+        <!--Optional:-->
+        <PearlType>string</PearlType>
+        <!--Optional:-->
+        <PearlUniformity>string</PearlUniformity>
+        <!--Optional:-->
+        <PhoneNumber>string</PhoneNumber>
+        <!--Zero or more repetitions:-->
+        <PhotoFlashType>string</PhotoFlashType>
+        <!--Zero or more repetitions:-->
+        <PictureFormat>string</PictureFormat>
+        <!--Zero or more repetitions:-->
+        <Platform>string</Platform>
+        <!--Optional:-->
+        <PriceRating>200</PriceRating>
+        <!--Optional:-->
+        <ProcessorCount>200</ProcessorCount>
+        <!--Optional:-->
+        <ProductGroup>string</ProductGroup>
+        <!--Optional:-->
+        <PromotionalTag>string</PromotionalTag>
+        <!--Optional:-->
+        <POBoxShippingExcluded>string</POBoxShippingExcluded>
+        <!--Optional:-->
+        <PublicationDate>string</PublicationDate>
+        <!--Optional:-->
+        <Publisher>string</Publisher>
+        <!--Zero or more repetitions:-->
+        <PurchasingChannel>string</PurchasingChannel>
+        <!--Optional:-->
+        <ReadingLevel>string</ReadingLevel>
+        <!--Optional:-->
+        <RecorderTrackCount>200</RecorderTrackCount>
+        <!--Optional:-->
+        <RegionCode>string</RegionCode>
+        <!--Optional:-->
+        <RegionOfOrigin>string</RegionOfOrigin>
+        <!--Optional:-->
+        <ReleaseDate>string</ReleaseDate>
+        <!--Zero or more repetitions:-->
+        <ReturnMethod>string</ReturnMethod>
+        <!--Optional:-->
+        <RemovableMemory>string</RemovableMemory>
+        <!--Optional:-->
+        <ResolutionModes>string</ResolutionModes>
+        <!--Optional:-->
+        <ReturnPolicy>string</ReturnPolicy>
+        <!--Optional:-->
+        <RingSize>string</RingSize>
+        <!--Optional:-->
+        <SafetyWarning>string</SafetyWarning>
+        <!--Optional:-->
+        <SalesRestriction>string</SalesRestriction>
+        <!--Optional:-->
+        <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+        <!--Optional:-->
+        <SettingType>string</SettingType>
+        <!--Optional:-->
+        <Size>string</Size>
+        <!--Optional:-->
+        <SKU>string</SKU>
+        <!--Optional:-->
+        <SoldInStores>string</SoldInStores>
+        <!--Optional:-->
+        <SizePerPearl>string</SizePerPearl>
+        <!--Optional:-->
+        <SkillLevel>string</SkillLevel>
+        <!--Optional:-->
+        <SoundCardDescription>string</SoundCardDescription>
+        <!--Optional:-->
+        <SpeakerCount>200</SpeakerCount>
+        <!--Optional:-->
+        <SpeakerDescription>string</SpeakerDescription>
+        <!--Zero or more repetitions:-->
+        <SpecialFeatures>string</SpecialFeatures>
+        <!--Optional:-->
+        <StoneClarity>string</StoneClarity>
+        <!--Optional:-->
+        <StoneColor>string</StoneColor>
+        <!--Optional:-->
+        <StoneCut>string</StoneCut>
+        <!--Optional:-->
+        <StoneShape>string</StoneShape>
+        <!--Optional:-->
+        <StoneWeight Units="string">1000.00</StoneWeight>
+        <!--Optional:-->
+        <Studio>string</Studio>
+        <!--Optional:-->
+        <SubscriptionLength Units="string">200</SubscriptionLength>
+        <!--Zero or more repetitions:-->
+        <SupportedImageType>string</SupportedImageType>
+        <!--Optional:-->
+        <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+        <!--Optional:-->
+        <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+        <!--Optional:-->
+        <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+        <!--Optional:-->
+        <SystemMemoryType>string</SystemMemoryType>
+        <!--Optional:-->
+        <TellingPageIndicator>string</TellingPageIndicator>
+        <!--Optional:-->
+        <TheatricalReleaseDate>string</TheatricalReleaseDate>
+        <!--Optional:-->
+        <Title>string</Title>
+        <!--Optional:-->
+        <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+        <!--Optional:-->
+        <TotalExternalBaysFree>200</TotalExternalBaysFree>
+        <!--Optional:-->
+        <TotalFirewirePorts>200</TotalFirewirePorts>
+        <!--Optional:-->
+        <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+        <!--Optional:-->
+        <TotalInternalBaysFree>200</TotalInternalBaysFree>
+        <!--Optional:-->
+        <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+        <!--Optional:-->
+        <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+        <!--Optional:-->
+        <TotalParallelPorts>200</TotalParallelPorts>
+        <!--Optional:-->
+        <TotalPCCardSlots>200</TotalPCCardSlots>
+        <!--Optional:-->
+        <TotalPCISlotsFree>200</TotalPCISlotsFree>
+        <!--Optional:-->
+        <TotalSerialPorts>200</TotalSerialPorts>
+        <!--Optional:-->
+        <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+        <!--Optional:-->
+        <TotalUSB2Ports>200</TotalUSB2Ports>
+        <!--Optional:-->
+        <TotalUSBPorts>200</TotalUSBPorts>
+        <!--Optional:-->
+        <TotalVGAOutPorts>200</TotalVGAOutPorts>
+        <!--Optional:-->
+        <UPC>string</UPC>
+        <!--Optional:-->
+        <VariationDenomination>string</VariationDenomination>
+        <!--Optional:-->
+        <VariationDescription>string</VariationDescription>
+        <!--Optional:-->
+        <VendorRebate>
+          <!--Optional:-->
+          <Type>string</Type>
+          <!--Optional:-->
+          <StartDate>string</StartDate>
+          <!--Optional:-->
+          <EndDate>string</EndDate>
+        </VendorRebate>
+        <!--Optional:-->
+        <Warranty>string</Warranty>
+        <!--Optional:-->
+        <WatchMovementType>string</WatchMovementType>
+        <!--Optional:-->
+        <WebsiteBuyability>string</WebsiteBuyability>
+        <!--Optional:-->
+        <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+        <!--Optional:-->
+        <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+      </MerchantItemAttributes>
+      <!--Optional:-->
+      <Collections>
+        <!--Zero or more repetitions:-->
+        <Collection>
+          <!--Optional:-->
+          <CollectionSummary>
+            <!--Optional:-->
+            <LowestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestListPrice>
+            <!--Optional:-->
+            <HighestListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestListPrice>
+            <!--Optional:-->
+            <LowestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestSalePrice>
+            <!--Optional:-->
+            <HighestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestSalePrice>
+          </CollectionSummary>
+          <!--Optional:-->
+          <CollectionParent>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionParent>
+          <!--Zero or more repetitions:-->
+          <CollectionItem>
+            <!--Optional:-->
+            <ASIN>string</ASIN>
+            <!--Optional:-->
+            <Title>string</Title>
+          </CollectionItem>
+        </Collection>
+      </Collections>
+      <!--Optional:-->
+      <Subjects>
+        <!--Zero or more repetitions:-->
+        <Subject>string</Subject>
+      </Subjects>
+      <!--Optional:-->
+      <OfferSummary>
+        <!--Optional:-->
+        <LowestNewPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestNewPrice>
+        <!--Optional:-->
+        <LowestUsedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestUsedPrice>
+        <!--Optional:-->
+        <LowestCollectiblePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestCollectiblePrice>
+        <!--Optional:-->
+        <LowestRefurbishedPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestRefurbishedPrice>
+        <!--Optional:-->
+        <TotalNew>string</TotalNew>
+        <!--Optional:-->
+        <TotalUsed>string</TotalUsed>
+        <!--Optional:-->
+        <TotalCollectible>string</TotalCollectible>
+        <!--Optional:-->
+        <TotalRefurbished>string</TotalRefurbished>
+      </OfferSummary>
+      <!--Optional:-->
+      <Offers>
+        <!--Optional:-->
+        <TotalOffers>200</TotalOffers>
+        <!--Optional:-->
+        <TotalOfferPages>200</TotalOfferPages>
+        <!--Zero or more repetitions:-->
+        <Offer>
+          <!--Optional:-->
+          <Merchant>
+            <MerchantId>string</MerchantId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+          </Merchant>
+          <!--Optional:-->
+          <Seller>
+            <SellerId>string</SellerId>
+            <!--Optional:-->
+            <SellerName>string</SellerName>
+            <!--Optional:-->
+            <SellerLegalName>string</SellerLegalName>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <GlancePage>string</GlancePage>
+            <!--Optional:-->
+            <About>string</About>
+            <!--Optional:-->
+            <MoreAbout>string</MoreAbout>
+            <!--Optional:-->
+            <Location>
+              <!--Optional:-->
+              <UserDefinedLocation>string</UserDefinedLocation>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <Country>string</Country>
+            </Location>
+            <!--Optional:-->
+            <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+            <!--Optional:-->
+            <TotalFeedback>200</TotalFeedback>
+            <!--Optional:-->
+            <TotalFeedbackPages>200</TotalFeedbackPages>
+            <!--Optional:-->
+            <SellerFeedbackSummary>
+              <!--Zero or more repetitions:-->
+              <FeedbackDateRange Period="string">
+                <!--Zero or more repetitions:-->
+                <SellerFeedbackRating Type="string">
+                  <!--Optional:-->
+                  <Count>200</Count>
+                  <!--Optional:-->
+                  <Percentage>200</Percentage>
+                </SellerFeedbackRating>
+              </FeedbackDateRange>
+            </SellerFeedbackSummary>
+            <!--Optional:-->
+            <SellerFeedback>
+              <!--1 or more repetitions:-->
+              <Feedback>
+                <!--Optional:-->
+                <Rating>200</Rating>
+                <!--Optional:-->
+                <Comment>string</Comment>
+                <!--Optional:-->
+                <Date>string</Date>
+                <!--Optional:-->
+                <RatedBy>string</RatedBy>
+              </Feedback>
+            </SellerFeedback>
+          </Seller>
+          <!--Optional:-->
+          <OfferAttributes>
+            <!--Optional:-->
+            <Condition>string</Condition>
+            <!--Optional:-->
+            <SubCondition>string</SubCondition>
+            <!--Optional:-->
+            <ConditionNote>string</ConditionNote>
+            <!--Optional:-->
+            <WillShipExpedited>true</WillShipExpedited>
+            <!--Optional:-->
+            <WillShipInternational>false</WillShipInternational>
+          </OfferAttributes>
+          <!--Zero or more repetitions:-->
+          <OfferListing>
+            <!--Optional:-->
+            <OfferListingId>string</OfferListingId>
+            <!--Optional:-->
+            <ExchangeId>string</ExchangeId>
+            <!--Optional:-->
+            <Price>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </Price>
+            <!--Optional:-->
+            <SalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </SalePrice>
+            <!--Optional:-->
+            <AmountSaved>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </AmountSaved>
+            <!--Optional:-->
+            <PercentageSaved>200</PercentageSaved>
+            <!--Optional:-->
+            <Availability>string</Availability>
+            <!--Optional:-->
+            <AvailabilityAttributes>
+              <!--Optional:-->
+              <AvailabilityType>string</AvailabilityType>
+              <!--Optional:-->
+              <IsPreorder>false</IsPreorder>
+              <!--Optional:-->
+              <MinimumHours>100</MinimumHours>
+              <!--Optional:-->
+              <MaximumHours>100</MaximumHours>
+            </AvailabilityAttributes>
+            <!--Optional:-->
+            <Quantity>100</Quantity>
+            <!--Optional:-->
+            <ISPUStoreAddress>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Address1>string</Address1>
+              <!--Optional:-->
+              <Address2>string</Address2>
+              <!--Optional:-->
+              <Address3>string</Address3>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <PostalCode>string</PostalCode>
+              <!--Optional:-->
+              <Country>string</Country>
+            </ISPUStoreAddress>
+            <!--Optional:-->
+            <ISPUStoreHours>string</ISPUStoreHours>
+            <!--Optional:-->
+            <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+            <!--Optional:-->
+            <SalesRestriction>string</SalesRestriction>
+            <!--Zero or more repetitions:-->
+            <ShippingCharge>
+              <ShippingType>string</ShippingType>
+              <ShippingPrice>
+                <!--Optional:-->
+                <Amount>100</Amount>
+                <!--Optional:-->
+                <CurrencyCode>string</CurrencyCode>
+                <FormattedPrice>string</FormattedPrice>
+              </ShippingPrice>
+            </ShippingCharge>
+          </OfferListing>
+          <!--Optional:-->
+          <LoyaltyPoints>
+            <!--Optional:-->
+            <Points>200</Points>
+            <!--Optional:-->
+            <TypicalRedemptionValue>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </TypicalRedemptionValue>
+          </LoyaltyPoints>
+          <!--Optional:-->
+          <Promotions>
+            <!--Zero or more repetitions:-->
+            <Promotion>
+              <!--Optional:-->
+              <Summary>
+                <PromotionId>string</PromotionId>
+                <!--Optional:-->
+                <Category>string</Category>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                <!--Optional:-->
+                <BenefitDescription>string</BenefitDescription>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+              </Summary>
+              <!--Optional:-->
+              <Details>
+                <MerchantId>string</MerchantId>
+                <OwningMerchantId>string</OwningMerchantId>
+                <PromotionId>string</PromotionId>
+                <PromotionCategory>string</PromotionCategory>
+                <!--Optional:-->
+                <MerchantPromotionId>string</MerchantPromotionId>
+                <!--Optional:-->
+                <GroupClaimCode>string</GroupClaimCode>
+                <!--Optional:-->
+                <CouponCombinationType>string</CouponCombinationType>
+                <!--Optional:-->
+                <StartDate>string</StartDate>
+                <!--Optional:-->
+                <EndDate>string</EndDate>
+                <!--Optional:-->
+                <TermsAndConditions>string</TermsAndConditions>
+                <!--Optional:-->
+                <EligibilityRequirements>
+                  <!--Zero or more repetitions:-->
+                  <EligibilityRequirement>
+                    <EligibilityRequirementType>string</EligibilityRequirementType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <CurrencyAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </CurrencyAmount>
+                  </EligibilityRequirement>
+                </EligibilityRequirements>
+                <!--Optional:-->
+                <Benefits>
+                  <!--Zero or more repetitions:-->
+                  <Benefit>
+                    <BenefitType>string</BenefitType>
+                    <ComponentType>string</ComponentType>
+                    <!--Optional:-->
+                    <Quantity>3</Quantity>
+                    <!--Optional:-->
+                    <PercentOff>1.051732E7</PercentOff>
+                    <!--Optional:-->
+                    <FixedAmount>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </FixedAmount>
+                    <!--Optional:-->
+                    <Ceiling>
+                      <!--Optional:-->
+                      <Amount>100</Amount>
+                      <!--Optional:-->
+                      <CurrencyCode>string</CurrencyCode>
+                      <FormattedPrice>string</FormattedPrice>
+                    </Ceiling>
+                  </Benefit>
+                </Benefits>
+                <!--Optional:-->
+                <ItemApplicability>
+                  <ASIN>string</ASIN>
+                  <IsInBenefitSet>false</IsInBenefitSet>
+                  <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                </ItemApplicability>
+                <!--Optional:-->
+                <MerchandisingMessage>string</MerchandisingMessage>
+              </Details>
+            </Promotion>
+          </Promotions>
+        </Offer>
+      </Offers>
+      <!--Optional:-->
+      <VariationSummary>
+        <!--Optional:-->
+        <LowestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestPrice>
+        <!--Optional:-->
+        <HighestPrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestPrice>
+        <!--Optional:-->
+        <LowestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </LowestSalePrice>
+        <!--Optional:-->
+        <HighestSalePrice>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </HighestSalePrice>
+        <!--Optional:-->
+        <SingleMerchantId>string</SingleMerchantId>
+      </VariationSummary>
+      <!--Optional:-->
+      <Variations>
+        <!--Optional:-->
+        <TotalVariations>200</TotalVariations>
+        <!--Optional:-->
+        <TotalVariationPages>200</TotalVariationPages>
+        <!--Optional:-->
+        <VariationDimensions>
+          <!--1 or more repetitions:-->
+          <VariationDimension>string</VariationDimension>
+        </VariationDimensions>
+        <!--Zero or more repetitions:-->
+        <Item/>
+      </Variations>
+      <!--Optional:-->
+      <CustomerReviews>
+        <!--Optional:-->
+        <AverageRating>1000.00</AverageRating>
+        <!--Optional:-->
+        <TotalReviews>200</TotalReviews>
+        <!--Optional:-->
+        <TotalReviewPages>200</TotalReviewPages>
+        <!--Zero or more repetitions:-->
+        <Review>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Rating>1000.00</Rating>
+          <!--Optional:-->
+          <HelpfulVotes>200</HelpfulVotes>
+          <!--Optional:-->
+          <CustomerId>string</CustomerId>
+          <!--Optional:-->
+          <Reviewer>
+            <!--Optional:-->
+            <CustomerId>string</CustomerId>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <Nickname>string</Nickname>
+            <!--Optional:-->
+            <Location>string</Location>
+          </Reviewer>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <Date>string</Date>
+          <!--Optional:-->
+          <Summary>string</Summary>
+          <!--Optional:-->
+          <Content>string</Content>
+        </Review>
+      </CustomerReviews>
+      <!--Optional:-->
+      <EditorialReviews>
+        <!--Zero or more repetitions:-->
+        <EditorialReview>
+          <!--Optional:-->
+          <Source>string</Source>
+          <!--Optional:-->
+          <Content>string</Content>
+          <!--Optional:-->
+          <IsLinkSuppressed>true</IsLinkSuppressed>
+        </EditorialReview>
+      </EditorialReviews>
+      <!--Optional:-->
+      <SimilarProducts>
+        <!--1 or more repetitions:-->
+        <SimilarProduct>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </SimilarProduct>
+      </SimilarProducts>
+      <!--Optional:-->
+      <Accessories>
+        <!--1 or more repetitions:-->
+        <Accessory>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <Title>string</Title>
+        </Accessory>
+      </Accessories>
+      <!--Optional:-->
+      <Tracks>
+        <!--1 or more repetitions:-->
+        <Disc Number="201">
+          <!--1 or more repetitions:-->
+          <Track Number="201">string</Track>
+        </Disc>
+      </Tracks>
+      <!--Optional:-->
+      <BrowseNodes>
+        <!--Zero or more repetitions:-->
+        <BrowseNode>
+          <!--Optional:-->
+          <BrowseNodeId>string</BrowseNodeId>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <IsCategoryRoot>false</IsCategoryRoot>
+          <!--Optional:-->
+          <Properties>
+            <!--1 or more repetitions:-->
+            <Property>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Value>string</Value>
+            </Property>
+          </Properties>
+          <!--Optional:-->
+          <Children>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Children>
+          <!--Optional:-->
+          <Ancestors>
+            <!--1 or more repetitions:-->
+            <BrowseNode/>
+          </Ancestors>
+          <!--Optional:-->
+          <TopSellers>
+            <!--1 or more repetitions:-->
+            <TopSeller>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </TopSeller>
+          </TopSellers>
+          <!--Optional:-->
+          <NewReleases>
+            <!--1 or more repetitions:-->
+            <NewRelease>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </NewRelease>
+          </NewReleases>
+        </BrowseNode>
+      </BrowseNodes>
+      <!--Optional:-->
+      <SearchInside>
+        <!--Optional:-->
+        <TotalExcerpts>200</TotalExcerpts>
+        <!--Optional:-->
+        <Excerpt>
+          <!--Optional:-->
+          <Checksum>string</Checksum>
+          <!--Optional:-->
+          <PageType>string</PageType>
+          <!--Optional:-->
+          <PageNumber>string</PageNumber>
+          <!--Optional:-->
+          <SequenceNumber>string</SequenceNumber>
+          <!--Optional:-->
+          <Text>string</Text>
+        </Excerpt>
+      </SearchInside>
+      <!--Optional:-->
+      <ListmaniaLists>
+        <!--1 or more repetitions:-->
+        <ListmaniaList>
+          <ListId>string</ListId>
+          <!--Optional:-->
+          <ListName>string</ListName>
+        </ListmaniaList>
+      </ListmaniaLists>
+      <!--Optional:-->
+      <Tags>
+        <!--Optional:-->
+        <DistinctTags>string</DistinctTags>
+        <!--Optional:-->
+        <DistinctItems>string</DistinctItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Zero or more repetitions:-->
+        <Tag>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <TagType>Item</TagType>
+          <!--Optional:-->
+          <DistinctItems>string</DistinctItems>
+          <!--Optional:-->
+          <DistinctUsers>string</DistinctUsers>
+          <!--Optional:-->
+          <TotalUsages>string</TotalUsages>
+          <!--Optional:-->
+          <FirstTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </FirstTagging>
+          <!--Optional:-->
+          <LastTagging>
+            <!--Optional:-->
+            <Name>string</Name>
+            <!--Optional:-->
+            <EntityId>string</EntityId>
+            <!--Optional:-->
+            <UserId>string</UserId>
+            <!--Optional:-->
+            <Time>string</Time>
+          </LastTagging>
+          <!--Zero or more repetitions:-->
+          <TaggedItems>
+            <!--Optional:-->
+            <DistinctUsers>string</DistinctUsers>
+            <!--Optional:-->
+            <TotalUsages>string</TotalUsages>
+            <!--Optional:-->
+            <FirstTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </FirstTagging>
+            <!--Optional:-->
+            <LastTagging>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <EntityId>string</EntityId>
+              <!--Optional:-->
+              <UserId>string</UserId>
+              <!--Optional:-->
+              <Time>string</Time>
+            </LastTagging>
+            <!--Optional:-->
+            <Item/>
+          </TaggedItems>
+          <!--Zero or more repetitions:-->
+          <TaggedListmaniaLists>
+            <!--Optional:-->
+            <List>
+              <ListId>string</ListId>
+              <!--Optional:-->
+              <ListURL>string</ListURL>
+              <!--Optional:-->
+              <RegistryNumber>string</RegistryNumber>
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Optional:-->
+              <!--Zero or more repetitions:-->
+            </List>
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+            <!--Optional:-->
+          </TaggedListmaniaLists>
+          <!--Zero or more repetitions:-->
+        </Tag>
+      </Tags>
+    </Item>
+    <!--Optional:-->
+  </Items>
+</SimilarityLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TagLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TagLookupResponse.xml
new file mode 100644
index 0000000..6d84115
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TagLookupResponse.xml
@@ -0,0 +1,2059 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TagLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Tags>
+    <!--Optional:-->
+    <DistinctTags>string</DistinctTags>
+    <!--Optional:-->
+    <DistinctItems>string</DistinctItems>
+    <!--Optional:-->
+    <DistinctUsers>string</DistinctUsers>
+    <!--Optional:-->
+    <TotalUsages>string</TotalUsages>
+    <!--Optional:-->
+    <FirstTagging>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <EntityId>string</EntityId>
+      <!--Optional:-->
+      <UserId>string</UserId>
+      <!--Optional:-->
+      <Time>string</Time>
+    </FirstTagging>
+    <!--Optional:-->
+    <LastTagging>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <EntityId>string</EntityId>
+      <!--Optional:-->
+      <UserId>string</UserId>
+      <!--Optional:-->
+      <Time>string</Time>
+    </LastTagging>
+    <!--Zero or more repetitions:-->
+    <Tag>
+      <!--Optional:-->
+      <Name>string</Name>
+      <!--Optional:-->
+      <TagType>Item</TagType>
+      <!--Optional:-->
+      <DistinctItems>string</DistinctItems>
+      <!--Optional:-->
+      <DistinctUsers>string</DistinctUsers>
+      <!--Optional:-->
+      <TotalUsages>string</TotalUsages>
+      <!--Optional:-->
+      <FirstTagging>
+        <!--Optional:-->
+        <Name>string</Name>
+        <!--Optional:-->
+        <EntityId>string</EntityId>
+        <!--Optional:-->
+        <UserId>string</UserId>
+        <!--Optional:-->
+        <Time>string</Time>
+      </FirstTagging>
+      <!--Optional:-->
+      <LastTagging>
+        <!--Optional:-->
+        <Name>string</Name>
+        <!--Optional:-->
+        <EntityId>string</EntityId>
+        <!--Optional:-->
+        <UserId>string</UserId>
+        <!--Optional:-->
+        <Time>string</Time>
+      </LastTagging>
+      <!--Zero or more repetitions:-->
+      <TaggedItems>
+        <!--Optional:-->
+        <DistinctUsers>string</DistinctUsers>
+        <!--Optional:-->
+        <TotalUsages>string</TotalUsages>
+        <!--Optional:-->
+        <FirstTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </FirstTagging>
+        <!--Optional:-->
+        <LastTagging>
+          <!--Optional:-->
+          <Name>string</Name>
+          <!--Optional:-->
+          <EntityId>string</EntityId>
+          <!--Optional:-->
+          <UserId>string</UserId>
+          <!--Optional:-->
+          <Time>string</Time>
+        </LastTagging>
+        <!--Optional:-->
+        <Item>
+          <!--Optional:-->
+          <AlternateVersions>
+            <!--Zero or more repetitions:-->
+            <AlternateVersion>
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+              <!--Optional:-->
+              <Binding>string</Binding>
+            </AlternateVersion>
+          </AlternateVersions>
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <ParentASIN>string</ParentASIN>
+          <!--Optional:-->
+          <DetailPageURL>string</DetailPageURL>
+          <!--Optional:-->
+          <SalesRank>string</SalesRank>
+          <!--Optional:-->
+          <SmallImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </SmallImage>
+          <!--Optional:-->
+          <MediumImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </MediumImage>
+          <!--Optional:-->
+          <LargeImage>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </LargeImage>
+          <!--Zero or more repetitions:-->
+          <ImageSets>
+            <!--Optional:-->
+            <MerchantId>string</MerchantId>
+            <!--Zero or more repetitions:-->
+            <ImageSet Category="string">
+              <!--Optional:-->
+              <SwatchImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SwatchImage>
+              <!--Optional:-->
+              <SmallImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </SmallImage>
+              <!--Optional:-->
+              <ThumbnailImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </ThumbnailImage>
+              <!--Optional:-->
+              <TinyImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </TinyImage>
+              <!--Optional:-->
+              <MediumImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </MediumImage>
+              <!--Optional:-->
+              <LargeImage>
+                <URL>string</URL>
+                <Height Units="string">1000.00</Height>
+                <Width Units="string">1000.00</Width>
+                <!--Optional:-->
+                <IsVerified>string</IsVerified>
+              </LargeImage>
+            </ImageSet>
+          </ImageSets>
+          <!--Optional:-->
+          <ItemAttributes>
+            <!--Zero or more repetitions:-->
+            <Actor>string</Actor>
+            <!--Optional:-->
+            <Address>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Address1>string</Address1>
+              <!--Optional:-->
+              <Address2>string</Address2>
+              <!--Optional:-->
+              <Address3>string</Address3>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <PostalCode>string</PostalCode>
+              <!--Optional:-->
+              <Country>string</Country>
+            </Address>
+            <!--Zero or more repetitions:-->
+            <Age>string</Age>
+            <!--Optional:-->
+            <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+            <!--Optional:-->
+            <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+            <!--Optional:-->
+            <AnalogVideoFormat>string</AnalogVideoFormat>
+            <!--Optional:-->
+            <ApertureModes>string</ApertureModes>
+            <!--Zero or more repetitions:-->
+            <Artist>string</Artist>
+            <!--Optional:-->
+            <AspectRatio>string</AspectRatio>
+            <!--Optional:-->
+            <AssemblyInstructions>string</AssemblyInstructions>
+            <!--Optional:-->
+            <AssemblyRequired>string</AssemblyRequired>
+            <!--Optional:-->
+            <AudienceRating>string</AudienceRating>
+            <!--Zero or more repetitions:-->
+            <AudioFormat>string</AudioFormat>
+            <!--Zero or more repetitions:-->
+            <Author>string</Author>
+            <!--Optional:-->
+            <BackFinding>string</BackFinding>
+            <!--Optional:-->
+            <BandMaterialType>string</BandMaterialType>
+            <!--Optional:-->
+            <BatteriesIncluded>string</BatteriesIncluded>
+            <!--Optional:-->
+            <BatteriesRequired>string</BatteriesRequired>
+            <!--Optional:-->
+            <Batteries Units="string">200</Batteries>
+            <!--Optional:-->
+            <BatteryDescription>string</BatteryDescription>
+            <!--Optional:-->
+            <BatteryType>string</BatteryType>
+            <!--Optional:-->
+            <BezelMaterialType>string</BezelMaterialType>
+            <!--Optional:-->
+            <Binding>string</Binding>
+            <!--Optional:-->
+            <Brand>string</Brand>
+            <!--Optional:-->
+            <CalendarType>string</CalendarType>
+            <!--Zero or more repetitions:-->
+            <CameraManualFeatures>string</CameraManualFeatures>
+            <!--Optional:-->
+            <CaseDiameter Units="string">1000.00</CaseDiameter>
+            <!--Optional:-->
+            <CaseMaterialType>string</CaseMaterialType>
+            <!--Optional:-->
+            <CaseThickness Units="string">1000.00</CaseThickness>
+            <!--Optional:-->
+            <CaseType>string</CaseType>
+            <!--Optional:-->
+            <CatalogNumber>string</CatalogNumber>
+            <!--Zero or more repetitions:-->
+            <Category>string</Category>
+            <!--Zero or more repetitions:-->
+            <CategoryBin>string</CategoryBin>
+            <!--Optional:-->
+            <CDRWDescription>string</CDRWDescription>
+            <!--Optional:-->
+            <ChainType>string</ChainType>
+            <!--Zero or more repetitions:-->
+            <Character>string</Character>
+            <!--Optional:-->
+            <CEROAgeRating>string</CEROAgeRating>
+            <!--Optional:-->
+            <ClaspType>string</ClaspType>
+            <!--Optional:-->
+            <ClothingSize>string</ClothingSize>
+            <!--Optional:-->
+            <ClubType>string</ClubType>
+            <!--Optional:-->
+            <Color>string</Color>
+            <!--Optional:-->
+            <Compatibility>string</Compatibility>
+            <!--Zero or more repetitions:-->
+            <CompatibleDevices>string</CompatibleDevices>
+            <!--Optional:-->
+            <ComputerHardwareType>string</ComputerHardwareType>
+            <!--Optional:-->
+            <ComputerPlatform>string</ComputerPlatform>
+            <!--Optional:-->
+            <Connectivity>string</Connectivity>
+            <!--Optional:-->
+            <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+            <!--Optional:-->
+            <Country>string</Country>
+            <!--Optional:-->
+            <CPUManufacturer>string</CPUManufacturer>
+            <!--Optional:-->
+            <CPUSpeed Units="string">1000.00</CPUSpeed>
+            <!--Optional:-->
+            <CPUType>string</CPUType>
+            <!--Zero or more repetitions:-->
+            <Creator Role="string">string</Creator>
+            <!--Optional:-->
+            <Cuisine>string</Cuisine>
+            <!--Zero or more repetitions:-->
+            <DataLinkProtocol>string</DataLinkProtocol>
+            <!--Optional:-->
+            <DeliveryOption>string</DeliveryOption>
+            <!--Optional:-->
+            <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+            <!--Optional:-->
+            <Department>string</Department>
+            <!--Optional:-->
+            <DeweyDecimalNumber>string</DeweyDecimalNumber>
+            <!--Optional:-->
+            <DialColor>string</DialColor>
+            <!--Optional:-->
+            <DialWindowMaterialType>string</DialWindowMaterialType>
+            <!--Optional:-->
+            <DigitalZoom Units="string">1000.00</DigitalZoom>
+            <!--Zero or more repetitions:-->
+            <Director>string</Director>
+            <!--Optional:-->
+            <DisplayColorSupport>string</DisplayColorSupport>
+            <!--Optional:-->
+            <DisplaySize Units="string">1000.00</DisplaySize>
+            <!--Optional:-->
+            <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+            <!--Optional:-->
+            <DVDLayers>200</DVDLayers>
+            <!--Optional:-->
+            <DVDRWDescription>string</DVDRWDescription>
+            <!--Optional:-->
+            <DVDSides>200</DVDSides>
+            <!--Optional:-->
+            <DPCI>string</DPCI>
+            <!--Optional:-->
+            <EAN>string</EAN>
+            <!--Optional:-->
+            <Edition>string</Edition>
+            <!--Zero or more repetitions:-->
+            <EducationalFocus>string</EducationalFocus>
+            <!--Zero or more repetitions:-->
+            <Ethnicity>string</Ethnicity>
+            <!--Optional:-->
+            <ESRBAgeRating>string</ESRBAgeRating>
+            <!--Optional:-->
+            <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+            <!--Optional:-->
+            <FabricType>string</FabricType>
+            <!--Optional:-->
+            <FaxNumber>string</FaxNumber>
+            <!--Zero or more repetitions:-->
+            <Feature>string</Feature>
+            <!--Optional:-->
+            <FilmColorType>string</FilmColorType>
+            <!--Optional:-->
+            <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+            <!--Optional:-->
+            <FlavorName>string</FlavorName>
+            <!--Optional:-->
+            <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+            <!--Zero or more repetitions:-->
+            <Format>string</Format>
+            <!--Zero or more repetitions:-->
+            <FormFactor>string</FormFactor>
+            <!--Optional:-->
+            <GemType>string</GemType>
+            <!--Zero or more repetitions:-->
+            <GemTypeSetElement>string</GemTypeSetElement>
+            <!--Zero or more repetitions:-->
+            <Gender>string</Gender>
+            <!--Optional:-->
+            <Genre>string</Genre>
+            <!--Optional:-->
+            <GLProductGroup>string</GLProductGroup>
+            <!--Optional:-->
+            <GolfClubFlex>string</GolfClubFlex>
+            <!--Optional:-->
+            <GolfClubLoft>string</GolfClubLoft>
+            <!--Optional:-->
+            <GraphicsCardInterface>string</GraphicsCardInterface>
+            <!--Optional:-->
+            <GraphicsDescription>string</GraphicsDescription>
+            <!--Optional:-->
+            <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+            <!--Optional:-->
+            <GuitarAttribute>string</GuitarAttribute>
+            <!--Optional:-->
+            <GuitarBridgeSystem>string</GuitarBridgeSystem>
+            <!--Optional:-->
+            <GuitarPickThickness>string</GuitarPickThickness>
+            <!--Optional:-->
+            <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+            <!--Optional:-->
+            <HandOrientation>string</HandOrientation>
+            <!--Optional:-->
+            <HardDiskCount>200</HardDiskCount>
+            <!--Optional:-->
+            <HardDiskSize Units="string">1000.00</HardDiskSize>
+            <!--Optional:-->
+            <HardDiskInterface>string</HardDiskInterface>
+            <!--Optional:-->
+            <HardwarePlatform>string</HardwarePlatform>
+            <!--Optional:-->
+            <HasAutoFocus>true</HasAutoFocus>
+            <!--Optional:-->
+            <HasBurstMode>true</HasBurstMode>
+            <!--Optional:-->
+            <HasInCameraEditing>true</HasInCameraEditing>
+            <!--Optional:-->
+            <HasRedEyeReduction>true</HasRedEyeReduction>
+            <!--Optional:-->
+            <HasSelfTimer>true</HasSelfTimer>
+            <!--Optional:-->
+            <HasTripodMount>true</HasTripodMount>
+            <!--Optional:-->
+            <HasVideoOut>false</HasVideoOut>
+            <!--Optional:-->
+            <HasViewfinder>false</HasViewfinder>
+            <!--Optional:-->
+            <HazardousMaterialType>string</HazardousMaterialType>
+            <!--Optional:-->
+            <HoursOfOperation>string</HoursOfOperation>
+            <!--Optional:-->
+            <IncludedSoftware>string</IncludedSoftware>
+            <!--Optional:-->
+            <IncludesMp3Player>false</IncludesMp3Player>
+            <!--Optional:-->
+            <Ingredients>string</Ingredients>
+            <!--Zero or more repetitions:-->
+            <IngredientsSetElement>string</IngredientsSetElement>
+            <!--Optional:-->
+            <InstrumentKey>string</InstrumentKey>
+            <!--Zero or more repetitions:-->
+            <Interest>string</Interest>
+            <!--Optional:-->
+            <IsAdultProduct>true</IsAdultProduct>
+            <!--Optional:-->
+            <IsAutographed>true</IsAutographed>
+            <!--Optional:-->
+            <ISBN>string</ISBN>
+            <!--Optional:-->
+            <IsFragile>false</IsFragile>
+            <!--Optional:-->
+            <IsLabCreated>true</IsLabCreated>
+            <!--Optional:-->
+            <IsMemorabilia>false</IsMemorabilia>
+            <!--Optional:-->
+            <ISOEquivalent Units="string">200</ISOEquivalent>
+            <!--Optional:-->
+            <IsPreannounce>false</IsPreannounce>
+            <!--Optional:-->
+            <IssuesPerYear>string</IssuesPerYear>
+            <!--Optional:-->
+            <ItemDimensions>
+              <!--Optional:-->
+              <Height Units="string">1000.00</Height>
+              <!--Optional:-->
+              <Length Units="string">1000.00</Length>
+              <!--Optional:-->
+              <Weight Units="string">1000.00</Weight>
+              <!--Optional:-->
+              <Width Units="string">1000.00</Width>
+            </ItemDimensions>
+            <!--Optional:-->
+            <KeyboardDescription>string</KeyboardDescription>
+            <!--Optional:-->
+            <Label>string</Label>
+            <!--Zero or more repetitions:-->
+            <LanguageName>string</LanguageName>
+            <!--Optional:-->
+            <Languages>
+              <!--Zero or more repetitions:-->
+              <Language>
+                <Name>string</Name>
+                <!--Optional:-->
+                <Type>string</Type>
+                <!--Optional:-->
+                <AudioFormat>string</AudioFormat>
+              </Language>
+            </Languages>
+            <!--Optional:-->
+            <LegalDisclaimer>string</LegalDisclaimer>
+            <!--Optional:-->
+            <LensType>string</LensType>
+            <!--Optional:-->
+            <LineVoltage>string</LineVoltage>
+            <!--Optional:-->
+            <ListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </ListPrice>
+            <!--Optional:-->
+            <MacroFocusRange>string</MacroFocusRange>
+            <!--Optional:-->
+            <MagazineType>string</MagazineType>
+            <!--Optional:-->
+            <MalletHardness>string</MalletHardness>
+            <!--Optional:-->
+            <Manufacturer>string</Manufacturer>
+            <!--Optional:-->
+            <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+            <!--Optional:-->
+            <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+            <!--Optional:-->
+            <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+            <!--Optional:-->
+            <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+            <!--Optional:-->
+            <MaterialType>string</MaterialType>
+            <!--Zero or more repetitions:-->
+            <MaterialTypeSetElement>string</MaterialTypeSetElement>
+            <!--Optional:-->
+            <MaximumAperture Units="string">1000.00</MaximumAperture>
+            <!--Optional:-->
+            <MaximumColorDepth>string</MaximumColorDepth>
+            <!--Optional:-->
+            <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+            <!--Optional:-->
+            <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+            <!--Optional:-->
+            <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+            <!--Optional:-->
+            <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+            <!--Optional:-->
+            <MaximumResolution Units="string">1000.00</MaximumResolution>
+            <!--Optional:-->
+            <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+            <!--Optional:-->
+            <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+            <!--Optional:-->
+            <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+            <!--Optional:-->
+            <MediaType>string</MediaType>
+            <!--Optional:-->
+            <MemorySlotsAvailable>string</MemorySlotsAvailable>
+            <!--Optional:-->
+            <MetalStamp>string</MetalStamp>
+            <!--Optional:-->
+            <MetalType>string</MetalType>
+            <!--Optional:-->
+            <MiniMovieDescription>string</MiniMovieDescription>
+            <!--Optional:-->
+            <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+            <!--Optional:-->
+            <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+            <!--Optional:-->
+            <Model>string</Model>
+            <!--Optional:-->
+            <ModelYear>200</ModelYear>
+            <!--Optional:-->
+            <ModemDescription>string</ModemDescription>
+            <!--Optional:-->
+            <MonitorSize Units="string">1000.00</MonitorSize>
+            <!--Optional:-->
+            <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+            <!--Optional:-->
+            <MouseDescription>string</MouseDescription>
+            <!--Optional:-->
+            <MPN>string</MPN>
+            <!--Optional:-->
+            <MusicalStyle>string</MusicalStyle>
+            <!--Optional:-->
+            <NativeResolution>string</NativeResolution>
+            <!--Optional:-->
+            <Neighborhood>string</Neighborhood>
+            <!--Optional:-->
+            <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+            <!--Optional:-->
+            <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+            <!--Optional:-->
+            <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+            <!--Optional:-->
+            <NumberOfDiscs>200</NumberOfDiscs>
+            <!--Optional:-->
+            <NumberOfIssues>200</NumberOfIssues>
+            <!--Optional:-->
+            <NumberOfItems>200</NumberOfItems>
+            <!--Optional:-->
+            <NumberOfKeys>200</NumberOfKeys>
+            <!--Optional:-->
+            <NumberOfPages>200</NumberOfPages>
+            <!--Optional:-->
+            <NumberOfPearls>200</NumberOfPearls>
+            <!--Optional:-->
+            <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+            <!--Optional:-->
+            <NumberOfStones>200</NumberOfStones>
+            <!--Optional:-->
+            <NumberOfStrings>200</NumberOfStrings>
+            <!--Optional:-->
+            <NumberOfTracks>200</NumberOfTracks>
+            <!--Optional:-->
+            <OperatingSystem>string</OperatingSystem>
+            <!--Optional:-->
+            <OpticalSensorResolution Units="string">1000.00</OpticalSensorResolution>
+            <!--Optional:-->
+            <OpticalZoom Units="string">1000.00</OpticalZoom>
+            <!--Optional:-->
+            <OriginalReleaseDate>string</OriginalReleaseDate>
+            <!--Optional:-->
+            <OutputWattage>200</OutputWattage>
+            <!--Optional:-->
+            <PackageDimensions>
+              <!--Optional:-->
+              <Height Units="string">1000.00</Height>
+              <!--Optional:-->
+              <Length Units="string">1000.00</Length>
+              <!--Optional:-->
+              <Weight Units="string">1000.00</Weight>
+              <!--Optional:-->
+              <Width Units="string">1000.00</Width>
+            </PackageDimensions>
+            <!--Optional:-->
+            <PackageQuantity>200</PackageQuantity>
+            <!--Zero or more repetitions:-->
+            <PantLength>string</PantLength>
+            <!--Zero or more repetitions:-->
+            <PantSize>string</PantSize>
+            <!--Optional:-->
+            <PearlLustre>string</PearlLustre>
+            <!--Optional:-->
+            <PearlMinimumColor>string</PearlMinimumColor>
+            <!--Optional:-->
+            <PearlShape>string</PearlShape>
+            <!--Optional:-->
+            <PearlStringingMethod>string</PearlStringingMethod>
+            <!--Optional:-->
+            <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+            <!--Optional:-->
+            <PearlType>string</PearlType>
+            <!--Optional:-->
+            <PearlUniformity>string</PearlUniformity>
+            <!--Optional:-->
+            <PhoneNumber>string</PhoneNumber>
+            <!--Zero or more repetitions:-->
+            <PhotoFlashType>string</PhotoFlashType>
+            <!--Zero or more repetitions:-->
+            <PictureFormat>string</PictureFormat>
+            <!--Zero or more repetitions:-->
+            <Platform>string</Platform>
+            <!--Optional:-->
+            <PriceRating>200</PriceRating>
+            <!--Zero or more repetitions:-->
+            <PrimaryColor>string</PrimaryColor>
+            <!--Optional:-->
+            <ProcessorCount>200</ProcessorCount>
+            <!--Optional:-->
+            <ProductGroup>string</ProductGroup>
+            <!--Optional:-->
+            <ProductSiteLaunchDate>string</ProductSiteLaunchDate>
+            <!--Optional:-->
+            <ProductTypeName>string</ProductTypeName>
+            <!--Optional:-->
+            <ProductTypeSubcategory>string</ProductTypeSubcategory>
+            <!--Optional:-->
+            <PromotionalTag>string</PromotionalTag>
+            <!--Optional:-->
+            <PublicationDate>string</PublicationDate>
+            <!--Optional:-->
+            <Publisher>string</Publisher>
+            <!--Optional:-->
+            <POBoxShippingExcluded>string</POBoxShippingExcluded>
+            <!--Optional:-->
+            <ReadingLevel>string</ReadingLevel>
+            <!--Zero or more repetitions:-->
+            <ReturnMethod>string</ReturnMethod>
+            <!--Optional:-->
+            <RecorderTrackCount>200</RecorderTrackCount>
+            <!--Optional:-->
+            <RegionCode>string</RegionCode>
+            <!--Optional:-->
+            <RegionOfOrigin>string</RegionOfOrigin>
+            <!--Optional:-->
+            <ReturnPolicy>string</ReturnPolicy>
+            <!--Optional:-->
+            <ReleaseDate>string</ReleaseDate>
+            <!--Optional:-->
+            <RemovableMemory>string</RemovableMemory>
+            <!--Optional:-->
+            <RemovableStorage>string</RemovableStorage>
+            <!--Optional:-->
+            <RequiredVoltageRange>string</RequiredVoltageRange>
+            <!--Optional:-->
+            <ResolutionModes>string</ResolutionModes>
+            <!--Optional:-->
+            <RingSize>string</RingSize>
+            <!--Optional:-->
+            <RunningTime Units="string">1000.00</RunningTime>
+            <!--Optional:-->
+            <ScentName>string</ScentName>
+            <!--Optional:-->
+            <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+            <!--Optional:-->
+            <SettingType>string</SettingType>
+            <!--Optional:-->
+            <ShaftMaterialType>string</ShaftMaterialType>
+            <!--Zero or more repetitions:-->
+            <ShoeSize>string</ShoeSize>
+            <!--Optional:-->
+            <Size>string</Size>
+            <!--Optional:-->
+            <SizePerPearl>string</SizePerPearl>
+            <!--Optional:-->
+            <SkillLevel>string</SkillLevel>
+            <!--Optional:-->
+            <SKU>string</SKU>
+            <!--Optional:-->
+            <SoldInStores>string</SoldInStores>
+            <!--Optional:-->
+            <SoundCardDescription>string</SoundCardDescription>
+            <!--Optional:-->
+            <SpeakerCount>200</SpeakerCount>
+            <!--Optional:-->
+            <SpeakerDescription>string</SpeakerDescription>
+            <!--Zero or more repetitions:-->
+            <SpecialFeatures>string</SpecialFeatures>
+            <!--Optional:-->
+            <StoneClarity>string</StoneClarity>
+            <!--Optional:-->
+            <StoneColor>string</StoneColor>
+            <!--Optional:-->
+            <StoneCut>string</StoneCut>
+            <!--Optional:-->
+            <StoneShape>string</StoneShape>
+            <!--Optional:-->
+            <StoneWeight Units="string">1000.00</StoneWeight>
+            <!--Optional:-->
+            <Studio>string</Studio>
+            <!--Optional:-->
+            <Style>string</Style>
+            <!--Optional:-->
+            <SubscriptionLength Units="string">200</SubscriptionLength>
+            <!--Zero or more repetitions:-->
+            <SupportedImageType>string</SupportedImageType>
+            <!--Optional:-->
+            <SupportedMediaSize>string</SupportedMediaSize>
+            <!--Optional:-->
+            <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+            <!--Optional:-->
+            <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+            <!--Optional:-->
+            <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+            <!--Optional:-->
+            <SystemMemoryType>string</SystemMemoryType>
+            <!--Zero or more repetitions:-->
+            <TargetBrand>string</TargetBrand>
+            <!--Optional:-->
+            <TellingPageIndicator>string</TellingPageIndicator>
+            <!--Optional:-->
+            <TheatricalReleaseDate>string</TheatricalReleaseDate>
+            <!--Optional:-->
+            <Title>string</Title>
+            <!--Optional:-->
+            <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+            <!--Optional:-->
+            <TotalExternalBaysFree>200</TotalExternalBaysFree>
+            <!--Optional:-->
+            <TotalFirewirePorts>200</TotalFirewirePorts>
+            <!--Optional:-->
+            <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+            <!--Optional:-->
+            <TotalInternalBaysFree>200</TotalInternalBaysFree>
+            <!--Optional:-->
+            <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+            <!--Optional:-->
+            <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+            <!--Optional:-->
+            <TotalParallelPorts>200</TotalParallelPorts>
+            <!--Optional:-->
+            <TotalPCCardSlots>200</TotalPCCardSlots>
+            <!--Optional:-->
+            <TotalPCISlotsFree>200</TotalPCISlotsFree>
+            <!--Optional:-->
+            <TotalSerialPorts>200</TotalSerialPorts>
+            <!--Optional:-->
+            <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+            <!--Optional:-->
+            <TotalUSB2Ports>200</TotalUSB2Ports>
+            <!--Optional:-->
+            <TotalUSBPorts>200</TotalUSBPorts>
+            <!--Optional:-->
+            <TotalVGAOutPorts>200</TotalVGAOutPorts>
+            <!--Optional:-->
+            <UPC>string</UPC>
+            <!--Optional:-->
+            <VariationDenomination>string</VariationDenomination>
+            <!--Optional:-->
+            <VariationDescription>string</VariationDescription>
+            <!--Optional:-->
+            <Warranty>string</Warranty>
+            <!--Optional:-->
+            <WatchMovementType>string</WatchMovementType>
+            <!--Optional:-->
+            <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+            <!--Optional:-->
+            <WEEETaxValue>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </WEEETaxValue>
+            <!--Optional:-->
+            <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+          </ItemAttributes>
+          <!--Optional:-->
+          <MerchantItemAttributes>
+            <!--Zero or more repetitions:-->
+            <Actor>string</Actor>
+            <!--Optional:-->
+            <Address>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <Address1>string</Address1>
+              <!--Optional:-->
+              <Address2>string</Address2>
+              <!--Optional:-->
+              <Address3>string</Address3>
+              <!--Optional:-->
+              <City>string</City>
+              <!--Optional:-->
+              <State>string</State>
+              <!--Optional:-->
+              <PostalCode>string</PostalCode>
+              <!--Optional:-->
+              <Country>string</Country>
+            </Address>
+            <!--Optional:-->
+            <AmazonMaximumAge Units="string">1000.00</AmazonMaximumAge>
+            <!--Optional:-->
+            <AmazonMinimumAge Units="string">1000.00</AmazonMinimumAge>
+            <!--Optional:-->
+            <ApertureModes>string</ApertureModes>
+            <!--Zero or more repetitions:-->
+            <Artist>string</Artist>
+            <!--Optional:-->
+            <AspectRatio>string</AspectRatio>
+            <!--Optional:-->
+            <AssemblyInstructions>string</AssemblyInstructions>
+            <!--Optional:-->
+            <AssemblyRequired>string</AssemblyRequired>
+            <!--Optional:-->
+            <AudienceRating>string</AudienceRating>
+            <!--Zero or more repetitions:-->
+            <AudioFormat>string</AudioFormat>
+            <!--Zero or more repetitions:-->
+            <Author>string</Author>
+            <!--Optional:-->
+            <BackFinding>string</BackFinding>
+            <!--Optional:-->
+            <BandMaterialType>string</BandMaterialType>
+            <!--Optional:-->
+            <BatteriesIncluded>string</BatteriesIncluded>
+            <!--Optional:-->
+            <BatteriesRequired>string</BatteriesRequired>
+            <!--Optional:-->
+            <Batteries Units="string">200</Batteries>
+            <!--Optional:-->
+            <BatteryDescription>string</BatteryDescription>
+            <!--Optional:-->
+            <BatteryType>string</BatteryType>
+            <!--Optional:-->
+            <BezelMaterialType>string</BezelMaterialType>
+            <!--Optional:-->
+            <Binding>string</Binding>
+            <!--Optional:-->
+            <Brand>string</Brand>
+            <!--Optional:-->
+            <CalendarType>string</CalendarType>
+            <!--Zero or more repetitions:-->
+            <CameraManualFeatures>string</CameraManualFeatures>
+            <!--Optional:-->
+            <CaseDiameter Units="string">1000.00</CaseDiameter>
+            <!--Optional:-->
+            <CaseMaterialType>string</CaseMaterialType>
+            <!--Optional:-->
+            <CaseThickness Units="string">1000.00</CaseThickness>
+            <!--Optional:-->
+            <CaseType>string</CaseType>
+            <!--Optional:-->
+            <CatalogNumber>string</CatalogNumber>
+            <!--Optional:-->
+            <CDRWDescription>string</CDRWDescription>
+            <!--Optional:-->
+            <ChainType>string</ChainType>
+            <!--Optional:-->
+            <ClaspType>string</ClaspType>
+            <!--Optional:-->
+            <ClothingSize>string</ClothingSize>
+            <!--Optional:-->
+            <Color>string</Color>
+            <!--Optional:-->
+            <Compatibility>string</Compatibility>
+            <!--Optional:-->
+            <ComputerHardwareType>string</ComputerHardwareType>
+            <!--Optional:-->
+            <ComputerPlatform>string</ComputerPlatform>
+            <!--Optional:-->
+            <Connectivity>string</Connectivity>
+            <!--Optional:-->
+            <ContinuousShootingSpeed Units="string">1000.00</ContinuousShootingSpeed>
+            <!--Optional:-->
+            <Country>string</Country>
+            <!--Optional:-->
+            <CountryOfOrigin>string</CountryOfOrigin>
+            <!--Optional:-->
+            <CPUManufacturer>string</CPUManufacturer>
+            <!--Optional:-->
+            <CPUSpeed Units="string">1000.00</CPUSpeed>
+            <!--Optional:-->
+            <CPUType>string</CPUType>
+            <!--Zero or more repetitions:-->
+            <Creator Role="string">string</Creator>
+            <!--Optional:-->
+            <Cuisine>string</Cuisine>
+            <!--Optional:-->
+            <Customizable>string</Customizable>
+            <!--Optional:-->
+            <DelayBetweenShots Units="string">1000.00</DelayBetweenShots>
+            <!--Optional:-->
+            <DeliveryOption>string</DeliveryOption>
+            <!--Optional:-->
+            <Department>string</Department>
+            <!--Optional:-->
+            <Description>string</Description>
+            <!--Optional:-->
+            <DeweyDecimalNumber>string</DeweyDecimalNumber>
+            <!--Optional:-->
+            <DialColor>string</DialColor>
+            <!--Optional:-->
+            <DialWindowMaterialType>string</DialWindowMaterialType>
+            <!--Optional:-->
+            <DigitalZoom Units="string">1000.00</DigitalZoom>
+            <!--Zero or more repetitions:-->
+            <Director>string</Director>
+            <!--Optional:-->
+            <DisplaySize Units="string">1000.00</DisplaySize>
+            <!--Optional:-->
+            <DrumSetPieceQuantity>200</DrumSetPieceQuantity>
+            <!--Optional:-->
+            <DVDLayers>200</DVDLayers>
+            <!--Optional:-->
+            <DVDRWDescription>string</DVDRWDescription>
+            <!--Optional:-->
+            <DVDSides>200</DVDSides>
+            <!--Optional:-->
+            <DPCI>string</DPCI>
+            <!--Optional:-->
+            <EAN>string</EAN>
+            <!--Optional:-->
+            <Edition>string</Edition>
+            <!--Optional:-->
+            <ESRBAgeRating>string</ESRBAgeRating>
+            <!--Optional:-->
+            <ExternalDisplaySupportDescription>string</ExternalDisplaySupportDescription>
+            <!--Optional:-->
+            <FabricType>string</FabricType>
+            <!--Optional:-->
+            <FaxNumber>string</FaxNumber>
+            <!--Zero or more repetitions:-->
+            <Feature>string</Feature>
+            <!--Optional:-->
+            <FirstIssueLeadTime Units="string">string</FirstIssueLeadTime>
+            <!--Optional:-->
+            <FloppyDiskDriveDescription>string</FloppyDiskDriveDescription>
+            <!--Zero or more repetitions:-->
+            <Format>string</Format>
+            <!--Optional:-->
+            <FixedShippingCharge>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </FixedShippingCharge>
+            <!--Optional:-->
+            <GemType>string</GemType>
+            <!--Optional:-->
+            <GraphicsCardInterface>string</GraphicsCardInterface>
+            <!--Optional:-->
+            <GraphicsDescription>string</GraphicsDescription>
+            <!--Optional:-->
+            <GraphicsMemorySize Units="string">1000.00</GraphicsMemorySize>
+            <!--Optional:-->
+            <GuitarAttribute>string</GuitarAttribute>
+            <!--Optional:-->
+            <GuitarBridgeSystem>string</GuitarBridgeSystem>
+            <!--Optional:-->
+            <GuitarPickThickness>string</GuitarPickThickness>
+            <!--Optional:-->
+            <GuitarPickupConfiguration>string</GuitarPickupConfiguration>
+            <!--Optional:-->
+            <HardDiskCount>200</HardDiskCount>
+            <!--Optional:-->
+            <HardDiskSize Units="string">200</HardDiskSize>
+            <!--Optional:-->
+            <HasAutoFocus>false</HasAutoFocus>
+            <!--Optional:-->
+            <HasBurstMode>false</HasBurstMode>
+            <!--Optional:-->
+            <HasInCameraEditing>false</HasInCameraEditing>
+            <!--Optional:-->
+            <HasRedEyeReduction>true</HasRedEyeReduction>
+            <!--Optional:-->
+            <HasSelfTimer>true</HasSelfTimer>
+            <!--Optional:-->
+            <HasTripodMount>false</HasTripodMount>
+            <!--Optional:-->
+            <HasVideoOut>true</HasVideoOut>
+            <!--Optional:-->
+            <HasViewfinder>true</HasViewfinder>
+            <!--Optional:-->
+            <HazardousMaterialType>string</HazardousMaterialType>
+            <!--Optional:-->
+            <HoursOfOperation>string</HoursOfOperation>
+            <!--Optional:-->
+            <IncludedSoftware>string</IncludedSoftware>
+            <!--Optional:-->
+            <IncludesMp3Player>true</IncludesMp3Player>
+            <!--Optional:-->
+            <Indications>string</Indications>
+            <!--Optional:-->
+            <Ingredients>string</Ingredients>
+            <!--Optional:-->
+            <InstrumentKey>string</InstrumentKey>
+            <!--Optional:-->
+            <IsAutographed>true</IsAutographed>
+            <!--Optional:-->
+            <ISBN>string</ISBN>
+            <!--Optional:-->
+            <IsFragile>false</IsFragile>
+            <!--Optional:-->
+            <IsLabCreated>false</IsLabCreated>
+            <!--Optional:-->
+            <IsMemorabilia>true</IsMemorabilia>
+            <!--Optional:-->
+            <ISOEquivalent Units="string">200</ISOEquivalent>
+            <!--Optional:-->
+            <IssuesPerYear>string</IssuesPerYear>
+            <!--Optional:-->
+            <ItemDimensions>
+              <!--Optional:-->
+              <Height Units="string">1000.00</Height>
+              <!--Optional:-->
+              <Length Units="string">1000.00</Length>
+              <!--Optional:-->
+              <Weight Units="string">1000.00</Weight>
+              <!--Optional:-->
+              <Width Units="string">1000.00</Width>
+            </ItemDimensions>
+            <!--Optional:-->
+            <KeyboardDescription>string</KeyboardDescription>
+            <!--Optional:-->
+            <Label>string</Label>
+            <!--Optional:-->
+            <Languages>
+              <!--Zero or more repetitions:-->
+              <Language>
+                <Name>string</Name>
+                <!--Optional:-->
+                <Type>string</Type>
+                <!--Optional:-->
+                <AudioFormat>string</AudioFormat>
+              </Language>
+            </Languages>
+            <!--Optional:-->
+            <LegalDisclaimer>string</LegalDisclaimer>
+            <!--Optional:-->
+            <LineVoltage>string</LineVoltage>
+            <!--Optional:-->
+            <ListPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </ListPrice>
+            <!--Optional:-->
+            <MacroFocusRange>string</MacroFocusRange>
+            <!--Optional:-->
+            <MagazineType>string</MagazineType>
+            <!--Optional:-->
+            <MalletHardness>string</MalletHardness>
+            <!--Optional:-->
+            <Manufacturer>string</Manufacturer>
+            <!--Optional:-->
+            <ManufacturerLaborWarrantyDescription>string</ManufacturerLaborWarrantyDescription>
+            <!--Optional:-->
+            <ManufacturerMaximumAge Units="string">1000.00</ManufacturerMaximumAge>
+            <!--Optional:-->
+            <ManufacturerMinimumAge Units="string">1000.00</ManufacturerMinimumAge>
+            <!--Optional:-->
+            <ManufacturerPartsWarrantyDescription>string</ManufacturerPartsWarrantyDescription>
+            <!--Optional:-->
+            <MaterialType>string</MaterialType>
+            <!--Optional:-->
+            <MaximumAperture Units="string">1000.00</MaximumAperture>
+            <!--Optional:-->
+            <MaximumColorDepth>string</MaximumColorDepth>
+            <!--Optional:-->
+            <MaximumFocalLength Units="string">1000.00</MaximumFocalLength>
+            <!--Optional:-->
+            <MaximumHighResolutionImages Units="string">200</MaximumHighResolutionImages>
+            <!--Optional:-->
+            <MaximumHorizontalResolution Units="string">200</MaximumHorizontalResolution>
+            <!--Optional:-->
+            <MaximumLowResolutionImages>string</MaximumLowResolutionImages>
+            <!--Optional:-->
+            <MaximumResolution Units="string">1000.00</MaximumResolution>
+            <!--Optional:-->
+            <MaximumShutterSpeed Units="string">1000.00</MaximumShutterSpeed>
+            <!--Optional:-->
+            <MaximumVerticalResolution Units="string">200</MaximumVerticalResolution>
+            <!--Optional:-->
+            <MaximumWeightRecommendation Units="string">1000.00</MaximumWeightRecommendation>
+            <!--Optional:-->
+            <MemorySlotsAvailable>200</MemorySlotsAvailable>
+            <!--Optional:-->
+            <MetalStamp>string</MetalStamp>
+            <!--Optional:-->
+            <MetalType>string</MetalType>
+            <!--Optional:-->
+            <MiniMovieDescription>string</MiniMovieDescription>
+            <!--Optional:-->
+            <MinimumFocalLength Units="string">1000.00</MinimumFocalLength>
+            <!--Optional:-->
+            <MinimumShutterSpeed Units="string">1000.00</MinimumShutterSpeed>
+            <!--Optional:-->
+            <Model>string</Model>
+            <!--Optional:-->
+            <ModelYear>200</ModelYear>
+            <!--Optional:-->
+            <ModemDescription>string</ModemDescription>
+            <!--Optional:-->
+            <MonitorSize Units="string">1000.00</MonitorSize>
+            <!--Optional:-->
+            <MonitorViewableDiagonalSize Units="string">1000.00</MonitorViewableDiagonalSize>
+            <!--Optional:-->
+            <MouseDescription>string</MouseDescription>
+            <!--Optional:-->
+            <MPN>string</MPN>
+            <!--Optional:-->
+            <MusicalStyle>string</MusicalStyle>
+            <!--Optional:-->
+            <NativeResolution>string</NativeResolution>
+            <!--Optional:-->
+            <Neighborhood>string</Neighborhood>
+            <!--Optional:-->
+            <NetworkInterfaceDescription>string</NetworkInterfaceDescription>
+            <!--Optional:-->
+            <NotebookDisplayTechnology>string</NotebookDisplayTechnology>
+            <!--Optional:-->
+            <NotebookPointingDeviceDescription>string</NotebookPointingDeviceDescription>
+            <!--Optional:-->
+            <NumberOfDiscs>200</NumberOfDiscs>
+            <!--Optional:-->
+            <NumberOfIssues>200</NumberOfIssues>
+            <!--Optional:-->
+            <NumberOfItems>200</NumberOfItems>
+            <!--Optional:-->
+            <NumberOfKeys>200</NumberOfKeys>
+            <!--Optional:-->
+            <NumberOfPages>200</NumberOfPages>
+            <!--Optional:-->
+            <NumberOfPearls>200</NumberOfPearls>
+            <!--Optional:-->
+            <NumberOfRapidFireShots>200</NumberOfRapidFireShots>
+            <!--Optional:-->
+            <NumberOfStones>200</NumberOfStones>
+            <!--Optional:-->
+            <NumberOfStrings>200</NumberOfStrings>
+            <!--Optional:-->
+            <NumberOfTracks>200</NumberOfTracks>
+            <!--Optional:-->
+            <OpticalZoom Units="string">1000.00</OpticalZoom>
+            <!--Optional:-->
+            <OriginalReleaseDate>string</OriginalReleaseDate>
+            <!--Optional:-->
+            <OutputWattage>200</OutputWattage>
+            <!--Optional:-->
+            <PackageDimensions>
+              <!--Optional:-->
+              <Height Units="string">1000.00</Height>
+              <!--Optional:-->
+              <Length Units="string">1000.00</Length>
+              <!--Optional:-->
+              <Weight Units="string">1000.00</Weight>
+              <!--Optional:-->
+              <Width Units="string">1000.00</Width>
+            </PackageDimensions>
+            <!--Optional:-->
+            <PearlLustre>string</PearlLustre>
+            <!--Optional:-->
+            <PearlMinimumColor>string</PearlMinimumColor>
+            <!--Optional:-->
+            <PearlShape>string</PearlShape>
+            <!--Optional:-->
+            <PearlStringingMethod>string</PearlStringingMethod>
+            <!--Optional:-->
+            <PearlSurfaceBlemishes>string</PearlSurfaceBlemishes>
+            <!--Optional:-->
+            <PearlType>string</PearlType>
+            <!--Optional:-->
+            <PearlUniformity>string</PearlUniformity>
+            <!--Optional:-->
+            <PhoneNumber>string</PhoneNumber>
+            <!--Zero or more repetitions:-->
+            <PhotoFlashType>string</PhotoFlashType>
+            <!--Zero or more repetitions:-->
+            <PictureFormat>string</PictureFormat>
+            <!--Zero or more repetitions:-->
+            <Platform>string</Platform>
+            <!--Optional:-->
+            <PriceRating>200</PriceRating>
+            <!--Optional:-->
+            <ProcessorCount>200</ProcessorCount>
+            <!--Optional:-->
+            <ProductGroup>string</ProductGroup>
+            <!--Optional:-->
+            <PromotionalTag>string</PromotionalTag>
+            <!--Optional:-->
+            <POBoxShippingExcluded>string</POBoxShippingExcluded>
+            <!--Optional:-->
+            <PublicationDate>string</PublicationDate>
+            <!--Optional:-->
+            <Publisher>string</Publisher>
+            <!--Zero or more repetitions:-->
+            <PurchasingChannel>string</PurchasingChannel>
+            <!--Optional:-->
+            <ReadingLevel>string</ReadingLevel>
+            <!--Optional:-->
+            <RecorderTrackCount>200</RecorderTrackCount>
+            <!--Optional:-->
+            <RegionCode>string</RegionCode>
+            <!--Optional:-->
+            <RegionOfOrigin>string</RegionOfOrigin>
+            <!--Optional:-->
+            <ReleaseDate>string</ReleaseDate>
+            <!--Zero or more repetitions:-->
+            <ReturnMethod>string</ReturnMethod>
+            <!--Optional:-->
+            <RemovableMemory>string</RemovableMemory>
+            <!--Optional:-->
+            <ResolutionModes>string</ResolutionModes>
+            <!--Optional:-->
+            <ReturnPolicy>string</ReturnPolicy>
+            <!--Optional:-->
+            <RingSize>string</RingSize>
+            <!--Optional:-->
+            <SafetyWarning>string</SafetyWarning>
+            <!--Optional:-->
+            <SalesRestriction>string</SalesRestriction>
+            <!--Optional:-->
+            <SecondaryCacheSize Units="string">200</SecondaryCacheSize>
+            <!--Optional:-->
+            <SettingType>string</SettingType>
+            <!--Optional:-->
+            <Size>string</Size>
+            <!--Optional:-->
+            <SKU>string</SKU>
+            <!--Optional:-->
+            <SoldInStores>string</SoldInStores>
+            <!--Optional:-->
+            <SizePerPearl>string</SizePerPearl>
+            <!--Optional:-->
+            <SkillLevel>string</SkillLevel>
+            <!--Optional:-->
+            <SoundCardDescription>string</SoundCardDescription>
+            <!--Optional:-->
+            <SpeakerCount>200</SpeakerCount>
+            <!--Optional:-->
+            <SpeakerDescription>string</SpeakerDescription>
+            <!--Zero or more repetitions:-->
+            <SpecialFeatures>string</SpecialFeatures>
+            <!--Optional:-->
+            <StoneClarity>string</StoneClarity>
+            <!--Optional:-->
+            <StoneColor>string</StoneColor>
+            <!--Optional:-->
+            <StoneCut>string</StoneCut>
+            <!--Optional:-->
+            <StoneShape>string</StoneShape>
+            <!--Optional:-->
+            <StoneWeight Units="string">1000.00</StoneWeight>
+            <!--Optional:-->
+            <Studio>string</Studio>
+            <!--Optional:-->
+            <SubscriptionLength Units="string">200</SubscriptionLength>
+            <!--Zero or more repetitions:-->
+            <SupportedImageType>string</SupportedImageType>
+            <!--Optional:-->
+            <SystemBusSpeed Units="string">1000.00</SystemBusSpeed>
+            <!--Optional:-->
+            <SystemMemorySizeMax Units="string">1000.00</SystemMemorySizeMax>
+            <!--Optional:-->
+            <SystemMemorySize Units="string">1000.00</SystemMemorySize>
+            <!--Optional:-->
+            <SystemMemoryType>string</SystemMemoryType>
+            <!--Optional:-->
+            <TellingPageIndicator>string</TellingPageIndicator>
+            <!--Optional:-->
+            <TheatricalReleaseDate>string</TheatricalReleaseDate>
+            <!--Optional:-->
+            <Title>string</Title>
+            <!--Optional:-->
+            <TotalDiamondWeight Units="string">1000.00</TotalDiamondWeight>
+            <!--Optional:-->
+            <TotalExternalBaysFree>200</TotalExternalBaysFree>
+            <!--Optional:-->
+            <TotalFirewirePorts>200</TotalFirewirePorts>
+            <!--Optional:-->
+            <TotalGemWeight Units="string">1000.00</TotalGemWeight>
+            <!--Optional:-->
+            <TotalInternalBaysFree>200</TotalInternalBaysFree>
+            <!--Optional:-->
+            <TotalMetalWeight Units="string">1000.00</TotalMetalWeight>
+            <!--Optional:-->
+            <TotalNTSCPALPorts>200</TotalNTSCPALPorts>
+            <!--Optional:-->
+            <TotalParallelPorts>200</TotalParallelPorts>
+            <!--Optional:-->
+            <TotalPCCardSlots>200</TotalPCCardSlots>
+            <!--Optional:-->
+            <TotalPCISlotsFree>200</TotalPCISlotsFree>
+            <!--Optional:-->
+            <TotalSerialPorts>200</TotalSerialPorts>
+            <!--Optional:-->
+            <TotalSVideoOutPorts>200</TotalSVideoOutPorts>
+            <!--Optional:-->
+            <TotalUSB2Ports>200</TotalUSB2Ports>
+            <!--Optional:-->
+            <TotalUSBPorts>200</TotalUSBPorts>
+            <!--Optional:-->
+            <TotalVGAOutPorts>200</TotalVGAOutPorts>
+            <!--Optional:-->
+            <UPC>string</UPC>
+            <!--Optional:-->
+            <VariationDenomination>string</VariationDenomination>
+            <!--Optional:-->
+            <VariationDescription>string</VariationDescription>
+            <!--Optional:-->
+            <VendorRebate>
+              <!--Optional:-->
+              <Type>string</Type>
+              <!--Optional:-->
+              <StartDate>string</StartDate>
+              <!--Optional:-->
+              <EndDate>string</EndDate>
+            </VendorRebate>
+            <!--Optional:-->
+            <Warranty>string</Warranty>
+            <!--Optional:-->
+            <WatchMovementType>string</WatchMovementType>
+            <!--Optional:-->
+            <WebsiteBuyability>string</WebsiteBuyability>
+            <!--Optional:-->
+            <WaterResistanceDepth Units="string">1000.00</WaterResistanceDepth>
+            <!--Optional:-->
+            <WirelessMicrophoneFrequency>200</WirelessMicrophoneFrequency>
+          </MerchantItemAttributes>
+          <!--Optional:-->
+          <Collections>
+            <!--Zero or more repetitions:-->
+            <Collection>
+              <!--Optional:-->
+              <CollectionSummary>
+                <!--Optional:-->
+                <LowestListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestListPrice>
+                <!--Optional:-->
+                <HighestListPrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestListPrice>
+                <!--Optional:-->
+                <LowestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </LowestSalePrice>
+                <!--Optional:-->
+                <HighestSalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </HighestSalePrice>
+              </CollectionSummary>
+              <!--Optional:-->
+              <CollectionParent>
+                <!--Optional:-->
+                <ASIN>string</ASIN>
+                <!--Optional:-->
+                <Title>string</Title>
+              </CollectionParent>
+              <!--Zero or more repetitions:-->
+              <CollectionItem>
+                <!--Optional:-->
+                <ASIN>string</ASIN>
+                <!--Optional:-->
+                <Title>string</Title>
+              </CollectionItem>
+            </Collection>
+          </Collections>
+          <!--Optional:-->
+          <Subjects>
+            <!--Zero or more repetitions:-->
+            <Subject>string</Subject>
+          </Subjects>
+          <!--Optional:-->
+          <OfferSummary>
+            <!--Optional:-->
+            <LowestNewPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestNewPrice>
+            <!--Optional:-->
+            <LowestUsedPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestUsedPrice>
+            <!--Optional:-->
+            <LowestCollectiblePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestCollectiblePrice>
+            <!--Optional:-->
+            <LowestRefurbishedPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestRefurbishedPrice>
+            <!--Optional:-->
+            <TotalNew>string</TotalNew>
+            <!--Optional:-->
+            <TotalUsed>string</TotalUsed>
+            <!--Optional:-->
+            <TotalCollectible>string</TotalCollectible>
+            <!--Optional:-->
+            <TotalRefurbished>string</TotalRefurbished>
+          </OfferSummary>
+          <!--Optional:-->
+          <Offers>
+            <!--Optional:-->
+            <TotalOffers>200</TotalOffers>
+            <!--Optional:-->
+            <TotalOfferPages>200</TotalOfferPages>
+            <!--Zero or more repetitions:-->
+            <Offer>
+              <!--Optional:-->
+              <Merchant>
+                <MerchantId>string</MerchantId>
+                <!--Optional:-->
+                <Name>string</Name>
+                <!--Optional:-->
+                <GlancePage>string</GlancePage>
+                <!--Optional:-->
+                <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                <!--Optional:-->
+                <TotalFeedback>200</TotalFeedback>
+                <!--Optional:-->
+                <TotalFeedbackPages>200</TotalFeedbackPages>
+              </Merchant>
+              <!--Optional:-->
+              <Seller>
+                <SellerId>string</SellerId>
+                <!--Optional:-->
+                <SellerName>string</SellerName>
+                <!--Optional:-->
+                <SellerLegalName>string</SellerLegalName>
+                <!--Optional:-->
+                <Nickname>string</Nickname>
+                <!--Optional:-->
+                <GlancePage>string</GlancePage>
+                <!--Optional:-->
+                <About>string</About>
+                <!--Optional:-->
+                <MoreAbout>string</MoreAbout>
+                <!--Optional:-->
+                <Location>
+                  <!--Optional:-->
+                  <UserDefinedLocation>string</UserDefinedLocation>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </Location>
+                <!--Optional:-->
+                <AverageFeedbackRating>1000.00</AverageFeedbackRating>
+                <!--Optional:-->
+                <TotalFeedback>200</TotalFeedback>
+                <!--Optional:-->
+                <TotalFeedbackPages>200</TotalFeedbackPages>
+                <!--Optional:-->
+                <SellerFeedbackSummary>
+                  <!--Zero or more repetitions:-->
+                  <FeedbackDateRange Period="string">
+                    <!--Zero or more repetitions:-->
+                    <SellerFeedbackRating Type="string">
+                      <!--Optional:-->
+                      <Count>200</Count>
+                      <!--Optional:-->
+                      <Percentage>200</Percentage>
+                    </SellerFeedbackRating>
+                  </FeedbackDateRange>
+                </SellerFeedbackSummary>
+                <!--Optional:-->
+                <SellerFeedback>
+                  <!--1 or more repetitions:-->
+                  <Feedback>
+                    <!--Optional:-->
+                    <Rating>200</Rating>
+                    <!--Optional:-->
+                    <Comment>string</Comment>
+                    <!--Optional:-->
+                    <Date>string</Date>
+                    <!--Optional:-->
+                    <RatedBy>string</RatedBy>
+                  </Feedback>
+                </SellerFeedback>
+              </Seller>
+              <!--Optional:-->
+              <OfferAttributes>
+                <!--Optional:-->
+                <Condition>string</Condition>
+                <!--Optional:-->
+                <SubCondition>string</SubCondition>
+                <!--Optional:-->
+                <ConditionNote>string</ConditionNote>
+                <!--Optional:-->
+                <WillShipExpedited>false</WillShipExpedited>
+                <!--Optional:-->
+                <WillShipInternational>false</WillShipInternational>
+              </OfferAttributes>
+              <!--Zero or more repetitions:-->
+              <OfferListing>
+                <!--Optional:-->
+                <OfferListingId>string</OfferListingId>
+                <!--Optional:-->
+                <ExchangeId>string</ExchangeId>
+                <!--Optional:-->
+                <Price>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </Price>
+                <!--Optional:-->
+                <SalePrice>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </SalePrice>
+                <!--Optional:-->
+                <AmountSaved>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </AmountSaved>
+                <!--Optional:-->
+                <PercentageSaved>200</PercentageSaved>
+                <!--Optional:-->
+                <Availability>string</Availability>
+                <!--Optional:-->
+                <AvailabilityAttributes>
+                  <!--Optional:-->
+                  <AvailabilityType>string</AvailabilityType>
+                  <!--Optional:-->
+                  <IsPreorder>false</IsPreorder>
+                  <!--Optional:-->
+                  <MinimumHours>100</MinimumHours>
+                  <!--Optional:-->
+                  <MaximumHours>100</MaximumHours>
+                </AvailabilityAttributes>
+                <!--Optional:-->
+                <Quantity>100</Quantity>
+                <!--Optional:-->
+                <ISPUStoreAddress>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Address1>string</Address1>
+                  <!--Optional:-->
+                  <Address2>string</Address2>
+                  <!--Optional:-->
+                  <Address3>string</Address3>
+                  <!--Optional:-->
+                  <City>string</City>
+                  <!--Optional:-->
+                  <State>string</State>
+                  <!--Optional:-->
+                  <PostalCode>string</PostalCode>
+                  <!--Optional:-->
+                  <Country>string</Country>
+                </ISPUStoreAddress>
+                <!--Optional:-->
+                <ISPUStoreHours>string</ISPUStoreHours>
+                <!--Optional:-->
+                <IsEligibleForSuperSaverShipping>false</IsEligibleForSuperSaverShipping>
+                <!--Optional:-->
+                <SalesRestriction>string</SalesRestriction>
+                <!--Zero or more repetitions:-->
+                <ShippingCharge>
+                  <ShippingType>string</ShippingType>
+                  <ShippingPrice>
+                    <!--Optional:-->
+                    <Amount>100</Amount>
+                    <!--Optional:-->
+                    <CurrencyCode>string</CurrencyCode>
+                    <FormattedPrice>string</FormattedPrice>
+                  </ShippingPrice>
+                </ShippingCharge>
+              </OfferListing>
+              <!--Optional:-->
+              <LoyaltyPoints>
+                <!--Optional:-->
+                <Points>200</Points>
+                <!--Optional:-->
+                <TypicalRedemptionValue>
+                  <!--Optional:-->
+                  <Amount>100</Amount>
+                  <!--Optional:-->
+                  <CurrencyCode>string</CurrencyCode>
+                  <FormattedPrice>string</FormattedPrice>
+                </TypicalRedemptionValue>
+              </LoyaltyPoints>
+              <!--Optional:-->
+              <Promotions>
+                <!--Zero or more repetitions:-->
+                <Promotion>
+                  <!--Optional:-->
+                  <Summary>
+                    <PromotionId>string</PromotionId>
+                    <!--Optional:-->
+                    <Category>string</Category>
+                    <!--Optional:-->
+                    <StartDate>string</StartDate>
+                    <!--Optional:-->
+                    <EndDate>string</EndDate>
+                    <!--Optional:-->
+                    <EligibilityRequirementDescription>string</EligibilityRequirementDescription>
+                    <!--Optional:-->
+                    <BenefitDescription>string</BenefitDescription>
+                    <!--Optional:-->
+                    <TermsAndConditions>string</TermsAndConditions>
+                  </Summary>
+                  <!--Optional:-->
+                  <Details>
+                    <MerchantId>string</MerchantId>
+                    <OwningMerchantId>string</OwningMerchantId>
+                    <PromotionId>string</PromotionId>
+                    <PromotionCategory>string</PromotionCategory>
+                    <!--Optional:-->
+                    <MerchantPromotionId>string</MerchantPromotionId>
+                    <!--Optional:-->
+                    <GroupClaimCode>string</GroupClaimCode>
+                    <!--Optional:-->
+                    <CouponCombinationType>string</CouponCombinationType>
+                    <!--Optional:-->
+                    <StartDate>string</StartDate>
+                    <!--Optional:-->
+                    <EndDate>string</EndDate>
+                    <!--Optional:-->
+                    <TermsAndConditions>string</TermsAndConditions>
+                    <!--Optional:-->
+                    <EligibilityRequirements>
+                      <!--Zero or more repetitions:-->
+                      <EligibilityRequirement>
+                        <EligibilityRequirementType>string</EligibilityRequirementType>
+                        <!--Optional:-->
+                        <Quantity>3</Quantity>
+                        <!--Optional:-->
+                        <CurrencyAmount>
+                          <!--Optional:-->
+                          <Amount>100</Amount>
+                          <!--Optional:-->
+                          <CurrencyCode>string</CurrencyCode>
+                          <FormattedPrice>string</FormattedPrice>
+                        </CurrencyAmount>
+                      </EligibilityRequirement>
+                    </EligibilityRequirements>
+                    <!--Optional:-->
+                    <Benefits>
+                      <!--Zero or more repetitions:-->
+                      <Benefit>
+                        <BenefitType>string</BenefitType>
+                        <ComponentType>string</ComponentType>
+                        <!--Optional:-->
+                        <Quantity>3</Quantity>
+                        <!--Optional:-->
+                        <PercentOff>1.051732E7</PercentOff>
+                        <!--Optional:-->
+                        <FixedAmount>
+                          <!--Optional:-->
+                          <Amount>100</Amount>
+                          <!--Optional:-->
+                          <CurrencyCode>string</CurrencyCode>
+                          <FormattedPrice>string</FormattedPrice>
+                        </FixedAmount>
+                        <!--Optional:-->
+                        <Ceiling>
+                          <!--Optional:-->
+                          <Amount>100</Amount>
+                          <!--Optional:-->
+                          <CurrencyCode>string</CurrencyCode>
+                          <FormattedPrice>string</FormattedPrice>
+                        </Ceiling>
+                      </Benefit>
+                    </Benefits>
+                    <!--Optional:-->
+                    <ItemApplicability>
+                      <ASIN>string</ASIN>
+                      <IsInBenefitSet>true</IsInBenefitSet>
+                      <IsInEligibilityRequirementSet>true</IsInEligibilityRequirementSet>
+                    </ItemApplicability>
+                    <!--Optional:-->
+                    <MerchandisingMessage>string</MerchandisingMessage>
+                  </Details>
+                </Promotion>
+              </Promotions>
+            </Offer>
+          </Offers>
+          <!--Optional:-->
+          <VariationSummary>
+            <!--Optional:-->
+            <LowestPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestPrice>
+            <!--Optional:-->
+            <HighestPrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestPrice>
+            <!--Optional:-->
+            <LowestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </LowestSalePrice>
+            <!--Optional:-->
+            <HighestSalePrice>
+              <!--Optional:-->
+              <Amount>100</Amount>
+              <!--Optional:-->
+              <CurrencyCode>string</CurrencyCode>
+              <FormattedPrice>string</FormattedPrice>
+            </HighestSalePrice>
+            <!--Optional:-->
+            <SingleMerchantId>string</SingleMerchantId>
+          </VariationSummary>
+          <!--Optional:-->
+          <Variations>
+            <!--Optional:-->
+            <TotalVariations>200</TotalVariations>
+            <!--Optional:-->
+            <TotalVariationPages>200</TotalVariationPages>
+            <!--Optional:-->
+            <VariationDimensions>
+              <!--1 or more repetitions:-->
+              <VariationDimension>string</VariationDimension>
+            </VariationDimensions>
+            <!--Zero or more repetitions:-->
+            <Item/>
+          </Variations>
+          <!--Optional:-->
+          <CustomerReviews>
+            <!--Optional:-->
+            <AverageRating>1000.00</AverageRating>
+            <!--Optional:-->
+            <TotalReviews>200</TotalReviews>
+            <!--Optional:-->
+            <TotalReviewPages>200</TotalReviewPages>
+            <!--Zero or more repetitions:-->
+            <Review>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Rating>1000.00</Rating>
+              <!--Optional:-->
+              <HelpfulVotes>200</HelpfulVotes>
+              <!--Optional:-->
+              <CustomerId>string</CustomerId>
+              <!--Optional:-->
+              <Reviewer>
+                <!--Optional:-->
+                <CustomerId>string</CustomerId>
+                <!--Optional:-->
+                <Name>string</Name>
+                <!--Optional:-->
+                <Nickname>string</Nickname>
+                <!--Optional:-->
+                <Location>string</Location>
+              </Reviewer>
+              <!--Optional:-->
+              <TotalVotes>200</TotalVotes>
+              <!--Optional:-->
+              <Date>string</Date>
+              <!--Optional:-->
+              <Summary>string</Summary>
+              <!--Optional:-->
+              <Content>string</Content>
+            </Review>
+          </CustomerReviews>
+          <!--Optional:-->
+          <EditorialReviews>
+            <!--Zero or more repetitions:-->
+            <EditorialReview>
+              <!--Optional:-->
+              <Source>string</Source>
+              <!--Optional:-->
+              <Content>string</Content>
+              <!--Optional:-->
+              <IsLinkSuppressed>false</IsLinkSuppressed>
+            </EditorialReview>
+          </EditorialReviews>
+          <!--Optional:-->
+          <SimilarProducts>
+            <!--1 or more repetitions:-->
+            <SimilarProduct>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </SimilarProduct>
+          </SimilarProducts>
+          <!--Optional:-->
+          <Accessories>
+            <!--1 or more repetitions:-->
+            <Accessory>
+              <!--Optional:-->
+              <ASIN>string</ASIN>
+              <!--Optional:-->
+              <Title>string</Title>
+            </Accessory>
+          </Accessories>
+          <!--Optional:-->
+          <Tracks>
+            <!--1 or more repetitions:-->
+            <Disc Number="201">
+              <!--1 or more repetitions:-->
+              <Track Number="201">string</Track>
+            </Disc>
+          </Tracks>
+          <!--Optional:-->
+          <BrowseNodes>
+            <!--Zero or more repetitions:-->
+            <BrowseNode>
+              <!--Optional:-->
+              <BrowseNodeId>string</BrowseNodeId>
+              <!--Optional:-->
+              <Name>string</Name>
+              <!--Optional:-->
+              <IsCategoryRoot>true</IsCategoryRoot>
+              <!--Optional:-->
+              <Properties>
+                <!--1 or more repetitions:-->
+                <Property>
+                  <!--Optional:-->
+                  <Name>string</Name>
+                  <!--Optional:-->
+                  <Value>string</Value>
+                </Property>
+              </Properties>
+              <!--Optional:-->
+              <Children>
+                <!--1 or more repetitions:-->
+                <BrowseNode/>
+              </Children>
+              <!--Optional:-->
+              <Ancestors>
+                <!--1 or more repetitions:-->
+                <BrowseNode/>
+              </Ancestors>
+              <!--Optional:-->
+              <TopSellers>
+                <!--1 or more repetitions:-->
+                <TopSeller>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </TopSeller>
+              </TopSellers>
+              <!--Optional:-->
+              <NewReleases>
+                <!--1 or more repetitions:-->
+                <NewRelease>
+                  <!--Optional:-->
+                  <ASIN>string</ASIN>
+                  <!--Optional:-->
+                  <Title>string</Title>
+                </NewRelease>
+              </NewReleases>
+            </BrowseNode>
+          </BrowseNodes>
+          <!--Optional:-->
+          <SearchInside>
+            <!--Optional:-->
+            <TotalExcerpts>200</TotalExcerpts>
+            <!--Optional:-->
+            <Excerpt>
+              <!--Optional:-->
+              <Checksum>string</Checksum>
+              <!--Optional:-->
+              <PageType>string</PageType>
+              <!--Optional:-->
+              <PageNumber>string</PageNumber>
+              <!--Optional:-->
+              <SequenceNumber>string</SequenceNumber>
+              <!--Optional:-->
+              <Text>string</Text>
+            </Excerpt>
+          </SearchInside>
+          <!--Optional:-->
+          <ListmaniaLists>
+            <!--1 or more repetitions:-->
+            <ListmaniaList>
+              <ListId>string</ListId>
+              <!--Optional:-->
+              <ListName>string</ListName>
+            </ListmaniaList>
+          </ListmaniaLists>
+          <!--Optional:-->
+          <Tags/>
+        </Item>
+      </TaggedItems>
+      <!--Zero or more repetitions:-->
+      <TaggedListmaniaLists>
+        <!--Optional:-->
+        <List>
+          <ListId>string</ListId>
+          <!--Optional:-->
+          <ListURL>string</ListURL>
+          <!--Optional:-->
+          <RegistryNumber>string</RegistryNumber>
+          <!--Optional:-->
+          <ListName>string</ListName>
+          <!--Optional:-->
+          <ListType>BabyRegistry</ListType>
+          <!--Optional:-->
+          <TotalItems>200</TotalItems>
+          <!--Optional:-->
+          <TotalPages>200</TotalPages>
+          <!--Optional:-->
+          <DateCreated>string</DateCreated>
+          <!--Optional:-->
+          <OccasionDate>string</OccasionDate>
+          <!--Optional:-->
+          <CustomerName>string</CustomerName>
+          <!--Optional:-->
+          <PartnerName>string</PartnerName>
+          <!--Optional:-->
+          <AdditionalName>string</AdditionalName>
+          <!--Optional:-->
+          <Comment>string</Comment>
+          <!--Optional:-->
+          <Image>
+            <URL>string</URL>
+            <Height Units="string">1000.00</Height>
+            <Width Units="string">1000.00</Width>
+            <!--Optional:-->
+            <IsVerified>string</IsVerified>
+          </Image>
+          <!--Optional:-->
+          <AverageRating>1000.00</AverageRating>
+          <!--Optional:-->
+          <TotalVotes>200</TotalVotes>
+          <!--Optional:-->
+          <TotalTimesRead>200</TotalTimesRead>
+          <!--Optional:-->
+          <!--Zero or more repetitions:-->
+        </List>
+        <!--Optional:-->
+        <!--Optional:-->
+        <!--Optional:-->
+        <!--Optional:-->
+      </TaggedListmaniaLists>
+      <!--Zero or more repetitions:-->
+    </Tag>
+  </Tags>
+</TagLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TransactionLookupResponse.xml b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TransactionLookupResponse.xml
new file mode 100644
index 0000000..1bdebf8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Mock/TransactionLookupResponse.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TransactionLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16";>
+  <!--Optional:-->
+  <OperationRequest>
+    <!--Optional:-->
+    <HTTPHeaders>
+      <!--Zero or more repetitions:-->
+      <Header Name="string" Value="string"/>
+    </HTTPHeaders>
+    <!--Optional:-->
+    <RequestId>string</RequestId>
+    <!--Optional:-->
+    <Arguments>
+      <!--1 or more repetitions:-->
+      <Argument Name="string" Value="string"/>
+    </Arguments>
+    <!--Optional:-->
+    <RequestProcessingTime>1.5E2</RequestProcessingTime>
+  </OperationRequest>
+  <!--Zero or more repetitions:-->
+  <Transactions>
+    <!--Optional:-->
+    <TotalResults>200</TotalResults>
+    <!--Optional:-->
+    <TotalPages>200</TotalPages>
+    <!--1 or more repetitions:-->
+    <Transaction>
+      <TransactionId>string</TransactionId>
+      <SellerId>string</SellerId>
+      <Condition>string</Condition>
+      <TransactionDate>string</TransactionDate>
+      <TransactionDateEpoch>string</TransactionDateEpoch>
+      <!--Optional:-->
+      <SellerName>string</SellerName>
+      <!--Optional:-->
+      <PayingCustomerId>string</PayingCustomerId>
+      <!--Optional:-->
+      <OrderingCustomerId>string</OrderingCustomerId>
+      <!--Optional:-->
+      <Totals>
+        <Total>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Total>
+        <Subtotal>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Subtotal>
+        <Tax>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Tax>
+        <ShippingCharge>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </ShippingCharge>
+        <Promotion>
+          <!--Optional:-->
+          <Amount>100</Amount>
+          <!--Optional:-->
+          <CurrencyCode>string</CurrencyCode>
+          <FormattedPrice>string</FormattedPrice>
+        </Promotion>
+      </Totals>
+      <!--Optional:-->
+      <TransactionItems>
+        <!--1 or more repetitions:-->
+        <TransactionItem>
+          <TransactionItemId>string</TransactionItemId>
+          <Quantity>string</Quantity>
+          <UnitPrice>
+            <!--Optional:-->
+            <Amount>100</Amount>
+            <!--Optional:-->
+            <CurrencyCode>string</CurrencyCode>
+            <FormattedPrice>string</FormattedPrice>
+          </UnitPrice>
+          <TotalPrice>
+            <!--Optional:-->
+            <Amount>100</Amount>
+            <!--Optional:-->
+            <CurrencyCode>string</CurrencyCode>
+            <FormattedPrice>string</FormattedPrice>
+          </TotalPrice>
+          <!--Optional:-->
+          <ASIN>string</ASIN>
+          <!--Optional:-->
+          <ChildTransactionItems>
+            <!--1 or more repetitions:-->
+            <TransactionItem/>
+          </ChildTransactionItems>
+        </TransactionItem>
+      </TransactionItems>
+      <!--Optional:-->
+      <Shipments>
+        <!--1 or more repetitions:-->
+        <Shipment>
+          <Condition>string</Condition>
+          <DeliveryMethod>string</DeliveryMethod>
+          <!--Optional:-->
+          <ShipmentItems>
+            <!--1 or more repetitions:-->
+            <TransactionItemId>string</TransactionItemId>
+          </ShipmentItems>
+          <!--Optional:-->
+          <Packages>
+            <!--1 or more repetitions:-->
+            <Package>
+              <TrackingNumber>string</TrackingNumber>
+              <CarrierName>string</CarrierName>
+            </Package>
+          </Packages>
+        </Shipment>
+      </Shipments>
+    </Transaction>
+  </Transactions>
+</TransactionLookupResponse>
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessories.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessories.cs
new file mode 100644
index 0000000..8372d0a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessories.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Accessories
+    {
+    
+        private  List<Accessory> accessoryField;
+
+
+        /// <summary>
+        /// Gets and sets the Accessory property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Accessory")]
+        public List<Accessory> Accessory
+        {
+            get
+            {
+                if (this.accessoryField == null)
+                {
+                    this.accessoryField = new List<Accessory>();
+                }
+                return this.accessoryField;
+            }
+            set { this.accessoryField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Accessory property
+        /// </summary>
+        /// <param name="list">Accessory property</param>
+        /// <returns>this instance</returns>
+        public Accessories WithAccessory(params Accessory[] list)
+        {
+            foreach (Accessory item in list)
+            {
+                Accessory.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Accessory property is set
+        /// </summary>
+        /// <returns>true if Accessory property is set</returns>
+        public Boolean IsSetAccessory()
+        {
+            return (Accessory.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Accessory> accessoryList = this.Accessory;
+            foreach (Accessory accessory in accessoryList) {
+                xml.Append("<Accessory>");
+                xml.Append(accessory.ToXMLFragment());
+                xml.Append("</Accessory>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessory.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessory.cs
new file mode 100644
index 0000000..5274450
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Accessory.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Accessory
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public Accessory WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public Accessory WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Address.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Address.cs
new file mode 100644
index 0000000..10b8391
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Address.cs
@@ -0,0 +1,434 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Address
+    {
+    
+        private String nameField;
+
+        private String address1Field;
+
+        private String address2Field;
+
+        private String address3Field;
+
+        private String cityField;
+
+        private String stateField;
+
+        private String postalCodeField;
+
+        private String countryField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Address WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Address1 property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Address1")]
+        public String Address1
+        {
+            get { return this.address1Field ; }
+            set { this.address1Field= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Address1 property
+        /// </summary>
+        /// <param name="address1">Address1 property</param>
+        /// <returns>this instance</returns>
+        public Address WithAddress1(String address1)
+        {
+            this.address1Field = address1;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Address1 property is set
+        /// </summary>
+        /// <returns>true if Address1 property is set</returns>
+        public Boolean IsSetAddress1()
+        {
+            return  this.address1Field != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Address2 property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Address2")]
+        public String Address2
+        {
+            get { return this.address2Field ; }
+            set { this.address2Field= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Address2 property
+        /// </summary>
+        /// <param name="address2">Address2 property</param>
+        /// <returns>this instance</returns>
+        public Address WithAddress2(String address2)
+        {
+            this.address2Field = address2;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Address2 property is set
+        /// </summary>
+        /// <returns>true if Address2 property is set</returns>
+        public Boolean IsSetAddress2()
+        {
+            return  this.address2Field != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Address3 property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Address3")]
+        public String Address3
+        {
+            get { return this.address3Field ; }
+            set { this.address3Field= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Address3 property
+        /// </summary>
+        /// <param name="address3">Address3 property</param>
+        /// <returns>this instance</returns>
+        public Address WithAddress3(String address3)
+        {
+            this.address3Field = address3;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Address3 property is set
+        /// </summary>
+        /// <returns>true if Address3 property is set</returns>
+        public Boolean IsSetAddress3()
+        {
+            return  this.address3Field != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the City property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "City")]
+        public String City
+        {
+            get { return this.cityField ; }
+            set { this.cityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the City property
+        /// </summary>
+        /// <param name="city">City property</param>
+        /// <returns>this instance</returns>
+        public Address WithCity(String city)
+        {
+            this.cityField = city;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if City property is set
+        /// </summary>
+        /// <returns>true if City property is set</returns>
+        public Boolean IsSetCity()
+        {
+            return  this.cityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the State property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "State")]
+        public String State
+        {
+            get { return this.stateField ; }
+            set { this.stateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the State property
+        /// </summary>
+        /// <param name="state">State property</param>
+        /// <returns>this instance</returns>
+        public Address WithState(String state)
+        {
+            this.stateField = state;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if State property is set
+        /// </summary>
+        /// <returns>true if State property is set</returns>
+        public Boolean IsSetState()
+        {
+            return  this.stateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PostalCode")]
+        public String PostalCode
+        {
+            get { return this.postalCodeField ; }
+            set { this.postalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PostalCode property
+        /// </summary>
+        /// <param name="postalCode">PostalCode property</param>
+        /// <returns>this instance</returns>
+        public Address WithPostalCode(String postalCode)
+        {
+            this.postalCodeField = postalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PostalCode property is set
+        /// </summary>
+        /// <returns>true if PostalCode property is set</returns>
+        public Boolean IsSetPostalCode()
+        {
+            return  this.postalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Country property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Country")]
+        public String Country
+        {
+            get { return this.countryField ; }
+            set { this.countryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Country property
+        /// </summary>
+        /// <param name="country">Country property</param>
+        /// <returns>this instance</returns>
+        public Address WithCountry(String country)
+        {
+            this.countryField = country;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Country property is set
+        /// </summary>
+        /// <returns>true if Country property is set</returns>
+        public Boolean IsSetCountry()
+        {
+            return  this.countryField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetAddress1()) {
+                xml.Append("<Address1>");
+                xml.Append(EscapeXML(this.Address1));
+                xml.Append("</Address1>");
+            }
+            if (IsSetAddress2()) {
+                xml.Append("<Address2>");
+                xml.Append(EscapeXML(this.Address2));
+                xml.Append("</Address2>");
+            }
+            if (IsSetAddress3()) {
+                xml.Append("<Address3>");
+                xml.Append(EscapeXML(this.Address3));
+                xml.Append("</Address3>");
+            }
+            if (IsSetCity()) {
+                xml.Append("<City>");
+                xml.Append(EscapeXML(this.City));
+                xml.Append("</City>");
+            }
+            if (IsSetState()) {
+                xml.Append("<State>");
+                xml.Append(EscapeXML(this.State));
+                xml.Append("</State>");
+            }
+            if (IsSetPostalCode()) {
+                xml.Append("<PostalCode>");
+                xml.Append(EscapeXML(this.PostalCode));
+                xml.Append("</PostalCode>");
+            }
+            if (IsSetCountry()) {
+                xml.Append("<Country>");
+                xml.Append(EscapeXML(this.Country));
+                xml.Append("</Country>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersion.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersion.cs
new file mode 100644
index 0000000..6995223
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersion.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class AlternateVersion
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+        private String bindingField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public AlternateVersion WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public AlternateVersion WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Binding property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Binding")]
+        public String Binding
+        {
+            get { return this.bindingField ; }
+            set { this.bindingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Binding property
+        /// </summary>
+        /// <param name="binding">Binding property</param>
+        /// <returns>this instance</returns>
+        public AlternateVersion WithBinding(String binding)
+        {
+            this.bindingField = binding;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Binding property is set
+        /// </summary>
+        /// <returns>true if Binding property is set</returns>
+        public Boolean IsSetBinding()
+        {
+            return  this.bindingField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetBinding()) {
+                xml.Append("<Binding>");
+                xml.Append(EscapeXML(this.Binding));
+                xml.Append("</Binding>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersions.cs
new file mode 100644
index 0000000..78e13f1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AlternateVersions.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class AlternateVersions
+    {
+    
+        private  List<AlternateVersion> alternateVersionField;
+
+
+        /// <summary>
+        /// Gets and sets the AlternateVersion property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AlternateVersion")]
+        public List<AlternateVersion> AlternateVersion
+        {
+            get
+            {
+                if (this.alternateVersionField == null)
+                {
+                    this.alternateVersionField = new List<AlternateVersion>();
+                }
+                return this.alternateVersionField;
+            }
+            set { this.alternateVersionField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AlternateVersion property
+        /// </summary>
+        /// <param name="list">AlternateVersion property</param>
+        /// <returns>this instance</returns>
+        public AlternateVersions WithAlternateVersion(params AlternateVersion[] list)
+        {
+            foreach (AlternateVersion item in list)
+            {
+                AlternateVersion.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if AlternateVersion property is set
+        /// </summary>
+        /// <returns>true if AlternateVersion property is set</returns>
+        public Boolean IsSetAlternateVersion()
+        {
+            return (AlternateVersion.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<AlternateVersion> alternateVersionList = this.AlternateVersion;
+            foreach (AlternateVersion alternateVersion in alternateVersionList) {
+                xml.Append("<AlternateVersion>");
+                xml.Append(alternateVersion.ToXMLFragment());
+                xml.Append("</AlternateVersion>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Argument.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Argument.cs
new file mode 100644
index 0000000..27d5036
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Argument.cs
@@ -0,0 +1,164 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Argument
+    {
+    
+        private  String nameField;
+        private  String valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Name property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Argument WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return this.nameField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Value")]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public Argument WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return this.valueField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Arguments.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Arguments.cs
new file mode 100644
index 0000000..215620a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Arguments.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Arguments
+    {
+    
+        private  List<Argument> argumentField;
+
+
+        /// <summary>
+        /// Gets and sets the Argument property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Argument")]
+        public List<Argument> Argument
+        {
+            get
+            {
+                if (this.argumentField == null)
+                {
+                    this.argumentField = new List<Argument>();
+                }
+                return this.argumentField;
+            }
+            set { this.argumentField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Argument property
+        /// </summary>
+        /// <param name="list">Argument property</param>
+        /// <returns>this instance</returns>
+        public Arguments WithArgument(params Argument[] list)
+        {
+            foreach (Argument item in list)
+            {
+                Argument.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Argument property is set
+        /// </summary>
+        /// <returns>true if Argument property is set</returns>
+        public Boolean IsSetArgument()
+        {
+            return (Argument.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Argument> argumentList = this.Argument;
+            foreach (Argument argument in argumentList) {
+                xml.Append("<Argument Name=" + "\"" +  EscapeXML(argument.Name)  + "\"" +  " Value=" + "\"" +  EscapeXML(argument.Value)  + "\"" +  ">");
+                xml.Append(argument.ToXMLFragment());
+                xml.Append("</Argument>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailabilityAttributes.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailabilityAttributes.cs
new file mode 100644
index 0000000..c8ff28c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailabilityAttributes.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class AvailabilityAttributes
+    {
+    
+        private String availabilityTypeField;
+
+        private Boolean? isPreorderField;
+
+        private Decimal? minimumHoursField;
+
+        private Decimal? maximumHoursField;
+
+
+        /// <summary>
+        /// Gets and sets the AvailabilityType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AvailabilityType")]
+        public String AvailabilityType
+        {
+            get { return this.availabilityTypeField ; }
+            set { this.availabilityTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AvailabilityType property
+        /// </summary>
+        /// <param name="availabilityType">AvailabilityType property</param>
+        /// <returns>this instance</returns>
+        public AvailabilityAttributes WithAvailabilityType(String availabilityType)
+        {
+            this.availabilityTypeField = availabilityType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AvailabilityType property is set
+        /// </summary>
+        /// <returns>true if AvailabilityType property is set</returns>
+        public Boolean IsSetAvailabilityType()
+        {
+            return  this.availabilityTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsPreorder property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsPreorder")]
+        public Boolean IsPreorder
+        {
+            get { return this.isPreorderField.GetValueOrDefault() ; }
+            set { this.isPreorderField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsPreorder property
+        /// </summary>
+        /// <param name="isPreorder">IsPreorder property</param>
+        /// <returns>this instance</returns>
+        public AvailabilityAttributes WithIsPreorder(Boolean isPreorder)
+        {
+            this.isPreorderField = isPreorder;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsPreorder property is set
+        /// </summary>
+        /// <returns>true if IsPreorder property is set</returns>
+        public Boolean IsSetIsPreorder()
+        {
+            return  this.isPreorderField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MinimumHours property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumHours")]
+        public Decimal MinimumHours
+        {
+            get { return this.minimumHoursField.GetValueOrDefault() ; }
+            set { this.minimumHoursField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumHours property
+        /// </summary>
+        /// <param name="minimumHours">MinimumHours property</param>
+        /// <returns>this instance</returns>
+        public AvailabilityAttributes WithMinimumHours(Decimal minimumHours)
+        {
+            this.minimumHoursField = minimumHours;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumHours property is set
+        /// </summary>
+        /// <returns>true if MinimumHours property is set</returns>
+        public Boolean IsSetMinimumHours()
+        {
+            return  this.minimumHoursField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumHours property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumHours")]
+        public Decimal MaximumHours
+        {
+            get { return this.maximumHoursField.GetValueOrDefault() ; }
+            set { this.maximumHoursField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumHours property
+        /// </summary>
+        /// <param name="maximumHours">MaximumHours property</param>
+        /// <returns>this instance</returns>
+        public AvailabilityAttributes WithMaximumHours(Decimal maximumHours)
+        {
+            this.maximumHoursField = maximumHours;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumHours property is set
+        /// </summary>
+        /// <returns>true if MaximumHours property is set</returns>
+        public Boolean IsSetMaximumHours()
+        {
+            return  this.maximumHoursField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAvailabilityType()) {
+                xml.Append("<AvailabilityType>");
+                xml.Append(EscapeXML(this.AvailabilityType));
+                xml.Append("</AvailabilityType>");
+            }
+            if (IsSetIsPreorder()) {
+                xml.Append("<IsPreorder>");
+                xml.Append(this.IsPreorder);
+                xml.Append("</IsPreorder>");
+            }
+            if (IsSetMinimumHours()) {
+                xml.Append("<MinimumHours>");
+                xml.Append(this.MinimumHours);
+                xml.Append("</MinimumHours>");
+            }
+            if (IsSetMaximumHours()) {
+                xml.Append("<MaximumHours>");
+                xml.Append(this.MaximumHours);
+                xml.Append("</MaximumHours>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableParameters.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableParameters.cs
new file mode 100644
index 0000000..a673401
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableParameters.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class AvailableParameters
+    {
+    
+        private List<String> parameterField;
+
+
+        /// <summary>
+        /// Gets and sets the Parameter property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Parameter")]
+        public List<String> Parameter
+        {
+            get
+            {
+                if (this.parameterField == null)
+                {
+                    this.parameterField = new List<String>();
+                }
+                return this.parameterField;
+            }
+            set { this.parameterField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Parameter property
+        /// </summary>
+        /// <param name="list">Parameter property</param>
+        /// <returns>this instance</returns>
+        public AvailableParameters WithParameter(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Parameter.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Parameter property is set
+        /// </summary>
+        /// <returns>true if Parameter property is set</returns>
+        public Boolean IsSetParameter()
+        {
+            return (Parameter.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> parameterList  =  this.Parameter;
+            foreach (String parameter in parameterList) { 
+                xml.Append("<Parameter>");
+                xml.Append(EscapeXML(parameter));
+                xml.Append("</Parameter>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableResponseGroups.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableResponseGroups.cs
new file mode 100644
index 0000000..340758b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/AvailableResponseGroups.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class AvailableResponseGroups
+    {
+    
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public AvailableResponseGroups WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(EscapeXML(responseGroup));
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Bin.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Bin.cs
new file mode 100644
index 0000000..30626d0
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Bin.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Bin
+    {
+    
+        private String binNameField;
+
+        private Decimal? binItemCountField;
+
+        private  List<BinParameter> binParameterField;
+
+
+        /// <summary>
+        /// Gets and sets the BinName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BinName")]
+        public String BinName
+        {
+            get { return this.binNameField ; }
+            set { this.binNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BinName property
+        /// </summary>
+        /// <param name="binName">BinName property</param>
+        /// <returns>this instance</returns>
+        public Bin WithBinName(String binName)
+        {
+            this.binNameField = binName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BinName property is set
+        /// </summary>
+        /// <returns>true if BinName property is set</returns>
+        public Boolean IsSetBinName()
+        {
+            return  this.binNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BinItemCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BinItemCount")]
+        public Decimal BinItemCount
+        {
+            get { return this.binItemCountField.GetValueOrDefault() ; }
+            set { this.binItemCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BinItemCount property
+        /// </summary>
+        /// <param name="binItemCount">BinItemCount property</param>
+        /// <returns>this instance</returns>
+        public Bin WithBinItemCount(Decimal binItemCount)
+        {
+            this.binItemCountField = binItemCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BinItemCount property is set
+        /// </summary>
+        /// <returns>true if BinItemCount property is set</returns>
+        public Boolean IsSetBinItemCount()
+        {
+            return  this.binItemCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BinParameter property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BinParameter")]
+        public List<BinParameter> BinParameter
+        {
+            get
+            {
+                if (this.binParameterField == null)
+                {
+                    this.binParameterField = new List<BinParameter>();
+                }
+                return this.binParameterField;
+            }
+            set { this.binParameterField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BinParameter property
+        /// </summary>
+        /// <param name="list">BinParameter property</param>
+        /// <returns>this instance</returns>
+        public Bin WithBinParameter(params BinParameter[] list)
+        {
+            foreach (BinParameter item in list)
+            {
+                BinParameter.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if BinParameter property is set
+        /// </summary>
+        /// <returns>true if BinParameter property is set</returns>
+        public Boolean IsSetBinParameter()
+        {
+            return (BinParameter.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetBinName()) {
+                xml.Append("<BinName>");
+                xml.Append(EscapeXML(this.BinName));
+                xml.Append("</BinName>");
+            }
+            if (IsSetBinItemCount()) {
+                xml.Append("<BinItemCount>");
+                xml.Append(this.BinItemCount);
+                xml.Append("</BinItemCount>");
+            }
+            List<BinParameter> binParameterList = this.BinParameter;
+            foreach (BinParameter binParameter in binParameterList) {
+                xml.Append("<BinParameter>");
+                xml.Append(binParameter.ToXMLFragment());
+                xml.Append("</BinParameter>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BinParameter.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BinParameter.cs
new file mode 100644
index 0000000..e866e71
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BinParameter.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BinParameter
+    {
+    
+        private String nameField;
+
+        private String valueField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public BinParameter WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Value property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Value")]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public BinParameter WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return  this.valueField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetValue()) {
+                xml.Append("<Value>");
+                xml.Append(EscapeXML(this.Value));
+                xml.Append("</Value>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNode.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNode.cs
new file mode 100644
index 0000000..ab51eb0
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNode.cs
@@ -0,0 +1,439 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNode
+    {
+    
+        private String browseNodeIdField;
+
+        private String nameField;
+
+        private Boolean? isCategoryRootField;
+
+        private  BrowseNodeProperties propertiesField;
+        private  BrowseNodeChildren childrenField;
+        private  BrowseNodeAncestors ancestorsField;
+        private  TopSellers topSellersField;
+        private  NewReleases newReleasesField;
+
+        /// <summary>
+        /// Gets and sets the BrowseNodeId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNodeId")]
+        public String BrowseNodeId
+        {
+            get { return this.browseNodeIdField ; }
+            set { this.browseNodeIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNodeId property
+        /// </summary>
+        /// <param name="browseNodeId">BrowseNodeId property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithBrowseNodeId(String browseNodeId)
+        {
+            this.browseNodeIdField = browseNodeId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BrowseNodeId property is set
+        /// </summary>
+        /// <returns>true if BrowseNodeId property is set</returns>
+        public Boolean IsSetBrowseNodeId()
+        {
+            return  this.browseNodeIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsCategoryRoot property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsCategoryRoot")]
+        public Boolean IsCategoryRoot
+        {
+            get { return this.isCategoryRootField.GetValueOrDefault() ; }
+            set { this.isCategoryRootField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsCategoryRoot property
+        /// </summary>
+        /// <param name="isCategoryRoot">IsCategoryRoot property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithIsCategoryRoot(Boolean isCategoryRoot)
+        {
+            this.isCategoryRootField = isCategoryRoot;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsCategoryRoot property is set
+        /// </summary>
+        /// <returns>true if IsCategoryRoot property is set</returns>
+        public Boolean IsSetIsCategoryRoot()
+        {
+            return  this.isCategoryRootField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Properties property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Properties")]
+        public BrowseNodeProperties Properties
+        {
+            get { return this.propertiesField ; }
+            set { this.propertiesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Properties property
+        /// </summary>
+        /// <param name="properties">Properties property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithProperties(BrowseNodeProperties properties)
+        {
+            this.propertiesField = properties;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Properties property is set
+        /// </summary>
+        /// <returns>true if Properties property is set</returns>
+        public Boolean IsSetProperties()
+        {
+            return this.propertiesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Children property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Children")]
+        public BrowseNodeChildren Children
+        {
+            get { return this.childrenField ; }
+            set { this.childrenField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Children property
+        /// </summary>
+        /// <param name="children">Children property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithChildren(BrowseNodeChildren children)
+        {
+            this.childrenField = children;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Children property is set
+        /// </summary>
+        /// <returns>true if Children property is set</returns>
+        public Boolean IsSetChildren()
+        {
+            return this.childrenField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Ancestors property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Ancestors")]
+        public BrowseNodeAncestors Ancestors
+        {
+            get { return this.ancestorsField ; }
+            set { this.ancestorsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Ancestors property
+        /// </summary>
+        /// <param name="ancestors">Ancestors property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithAncestors(BrowseNodeAncestors ancestors)
+        {
+            this.ancestorsField = ancestors;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Ancestors property is set
+        /// </summary>
+        /// <returns>true if Ancestors property is set</returns>
+        public Boolean IsSetAncestors()
+        {
+            return this.ancestorsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TopSellers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TopSellers")]
+        public TopSellers TopSellers
+        {
+            get { return this.topSellersField ; }
+            set { this.topSellersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TopSellers property
+        /// </summary>
+        /// <param name="topSellers">TopSellers property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithTopSellers(TopSellers topSellers)
+        {
+            this.topSellersField = topSellers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TopSellers property is set
+        /// </summary>
+        /// <returns>true if TopSellers property is set</returns>
+        public Boolean IsSetTopSellers()
+        {
+            return this.topSellersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the NewReleases property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NewReleases")]
+        public NewReleases NewReleases
+        {
+            get { return this.newReleasesField ; }
+            set { this.newReleasesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NewReleases property
+        /// </summary>
+        /// <param name="newReleases">NewReleases property</param>
+        /// <returns>this instance</returns>
+        public BrowseNode WithNewReleases(NewReleases newReleases)
+        {
+            this.newReleasesField = newReleases;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NewReleases property is set
+        /// </summary>
+        /// <returns>true if NewReleases property is set</returns>
+        public Boolean IsSetNewReleases()
+        {
+            return this.newReleasesField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetBrowseNodeId()) {
+                xml.Append("<BrowseNodeId>");
+                xml.Append(EscapeXML(this.BrowseNodeId));
+                xml.Append("</BrowseNodeId>");
+            }
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetIsCategoryRoot()) {
+                xml.Append("<IsCategoryRoot>");
+                xml.Append(this.IsCategoryRoot);
+                xml.Append("</IsCategoryRoot>");
+            }
+            if (IsSetProperties()) {
+                BrowseNodeProperties  properties = this.Properties;
+                xml.Append("<Properties>");
+                xml.Append(properties.ToXMLFragment());
+                xml.Append("</Properties>");
+            } 
+            if (IsSetChildren()) {
+                BrowseNodeChildren  children = this.Children;
+                xml.Append("<Children>");
+                xml.Append(children.ToXMLFragment());
+                xml.Append("</Children>");
+            } 
+            if (IsSetAncestors()) {
+                BrowseNodeAncestors  ancestors = this.Ancestors;
+                xml.Append("<Ancestors>");
+                xml.Append(ancestors.ToXMLFragment());
+                xml.Append("</Ancestors>");
+            } 
+            if (IsSetTopSellers()) {
+                TopSellers  topSellers = this.TopSellers;
+                xml.Append("<TopSellers>");
+                xml.Append(topSellers.ToXMLFragment());
+                xml.Append("</TopSellers>");
+            } 
+            if (IsSetNewReleases()) {
+                NewReleases  newReleases = this.NewReleases;
+                xml.Append("<NewReleases>");
+                xml.Append(newReleases.ToXMLFragment());
+                xml.Append("</NewReleases>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeAncestors.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeAncestors.cs
new file mode 100644
index 0000000..d431ac0
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeAncestors.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeAncestors
+    {
+    
+        private  List<BrowseNode> browseNodeField;
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNode")]
+        public List<BrowseNode> BrowseNode
+        {
+            get
+            {
+                if (this.browseNodeField == null)
+                {
+                    this.browseNodeField = new List<BrowseNode>();
+                }
+                return this.browseNodeField;
+            }
+            set { this.browseNodeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNode property
+        /// </summary>
+        /// <param name="list">BrowseNode property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeAncestors WithBrowseNode(params BrowseNode[] list)
+        {
+            foreach (BrowseNode item in list)
+            {
+                BrowseNode.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if BrowseNode property is set
+        /// </summary>
+        /// <returns>true if BrowseNode property is set</returns>
+        public Boolean IsSetBrowseNode()
+        {
+            return (BrowseNode.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<BrowseNode> browseNodeList = this.BrowseNode;
+            foreach (BrowseNode browseNode in browseNodeList) {
+                xml.Append("<BrowseNode>");
+                xml.Append(browseNode.ToXMLFragment());
+                xml.Append("</BrowseNode>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeChildren.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeChildren.cs
new file mode 100644
index 0000000..3715f92
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeChildren.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeChildren
+    {
+    
+        private  List<BrowseNode> browseNodeField;
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNode")]
+        public List<BrowseNode> BrowseNode
+        {
+            get
+            {
+                if (this.browseNodeField == null)
+                {
+                    this.browseNodeField = new List<BrowseNode>();
+                }
+                return this.browseNodeField;
+            }
+            set { this.browseNodeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNode property
+        /// </summary>
+        /// <param name="list">BrowseNode property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeChildren WithBrowseNode(params BrowseNode[] list)
+        {
+            foreach (BrowseNode item in list)
+            {
+                BrowseNode.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if BrowseNode property is set
+        /// </summary>
+        /// <returns>true if BrowseNode property is set</returns>
+        public Boolean IsSetBrowseNode()
+        {
+            return (BrowseNode.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<BrowseNode> browseNodeList = this.BrowseNode;
+            foreach (BrowseNode browseNode in browseNodeList) {
+                xml.Append("<BrowseNode>");
+                xml.Append(browseNode.ToXMLFragment());
+                xml.Append("</BrowseNode>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookup.cs
new file mode 100644
index 0000000..a60fe22
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookup.cs
@@ -0,0 +1,115 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeLookup
+    {
+    
+        private  List<BrowseNodeLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<BrowseNodeLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<BrowseNodeLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeLookup WithRequest(params BrowseNodeLookupRequest[] list)
+        {
+            foreach (BrowseNodeLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "BrowseNodeLookup");
+            List<BrowseNodeLookupRequest> requestList = Request;
+            foreach (BrowseNodeLookupRequest request in requestList) 
+            {
+                List<String> browseNodeIdList  =  request.BrowseNodeId;
+                foreach  (String browseNodeId in browseNodeIdList)
+                { 
+                    parameters.Add("BrowseNodeLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "BrowseNodeId" + "."  + (browseNodeIdList.IndexOf(browseNodeId) + 1), browseNodeId);
+                }	
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("BrowseNodeLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupRequest.cs
new file mode 100644
index 0000000..b3c3895
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupRequest.cs
@@ -0,0 +1,200 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeLookupRequest
+    {
+    
+        private List<String> browseNodeIdField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNodeId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNodeId")]
+        public List<String> BrowseNodeId
+        {
+            get
+            {
+                if (this.browseNodeIdField == null)
+                {
+                    this.browseNodeIdField = new List<String>();
+                }
+                return this.browseNodeIdField;
+            }
+            set { this.browseNodeIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNodeId property
+        /// </summary>
+        /// <param name="list">BrowseNodeId property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeLookupRequest WithBrowseNodeId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                BrowseNodeId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of BrowseNodeId property is set
+        /// </summary>
+        /// <returns>true if BrowseNodeId property is set</returns>
+        public Boolean IsSetBrowseNodeId()
+        {
+            return (BrowseNodeId.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> browseNodeIdList  =  this.BrowseNodeId;
+            foreach (String browseNodeId in browseNodeIdList) { 
+                xml.Append("<BrowseNodeId>");
+                xml.Append(EscapeXML(browseNodeId));
+                xml.Append("</BrowseNodeId>");
+            }	
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupResponse.cs
new file mode 100644
index 0000000..67e5391
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<BrowseNodes> browseNodesField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNodes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNodes")]
+        public List<BrowseNodes> BrowseNodes
+        {
+            get
+            {
+                if (this.browseNodesField == null)
+                {
+                    this.browseNodesField = new List<BrowseNodes>();
+                }
+                return this.browseNodesField;
+            }
+            set { this.browseNodesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNodes property
+        /// </summary>
+        /// <param name="list">BrowseNodes property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeLookupResponse WithBrowseNodes(params BrowseNodes[] list)
+        {
+            foreach (BrowseNodes item in list)
+            {
+                BrowseNodes.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if BrowseNodes property is set
+        /// </summary>
+        /// <returns>true if BrowseNodes property is set</returns>
+        public Boolean IsSetBrowseNodes()
+        {
+            return (BrowseNodes.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<BrowseNodeLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<BrowseNodes> browseNodesList = this.BrowseNodes;
+            foreach (BrowseNodes browseNodes in browseNodesList) {
+                xml.Append("<BrowseNodes>");
+                xml.Append(browseNodes.ToXMLFragment());
+                xml.Append("</BrowseNodes>");
+            }
+            xml.Append("</BrowseNodeLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeProperties.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeProperties.cs
new file mode 100644
index 0000000..dc8c6e8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodeProperties.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodeProperties
+    {
+    
+        private  List<Property> propertyField;
+
+
+        /// <summary>
+        /// Gets and sets the Property property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Property")]
+        public List<Property> Property
+        {
+            get
+            {
+                if (this.propertyField == null)
+                {
+                    this.propertyField = new List<Property>();
+                }
+                return this.propertyField;
+            }
+            set { this.propertyField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Property property
+        /// </summary>
+        /// <param name="list">Property property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodeProperties WithProperty(params Property[] list)
+        {
+            foreach (Property item in list)
+            {
+                Property.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Property property is set
+        /// </summary>
+        /// <returns>true if Property property is set</returns>
+        public Boolean IsSetProperty()
+        {
+            return (Property.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Property> propertyList = this.Property;
+            foreach (Property property in propertyList) {
+                xml.Append("<Property>");
+                xml.Append(property.ToXMLFragment());
+                xml.Append("</Property>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodes.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodes.cs
new file mode 100644
index 0000000..4dd9cc5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/BrowseNodes.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class BrowseNodes
+    {
+    
+        private  List<BrowseNode> browseNodeField;
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNode")]
+        public List<BrowseNode> BrowseNode
+        {
+            get
+            {
+                if (this.browseNodeField == null)
+                {
+                    this.browseNodeField = new List<BrowseNode>();
+                }
+                return this.browseNodeField;
+            }
+            set { this.browseNodeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNode property
+        /// </summary>
+        /// <param name="list">BrowseNode property</param>
+        /// <returns>this instance</returns>
+        public BrowseNodes WithBrowseNode(params BrowseNode[] list)
+        {
+            foreach (BrowseNode item in list)
+            {
+                BrowseNode.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if BrowseNode property is set
+        /// </summary>
+        /// <returns>true if BrowseNode property is set</returns>
+        public Boolean IsSetBrowseNode()
+        {
+            return (BrowseNode.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<BrowseNode> browseNodeList = this.BrowseNode;
+            foreach (BrowseNode browseNode in browseNodeList) {
+                xml.Append("<BrowseNode>");
+                xml.Append(browseNode.ToXMLFragment());
+                xml.Append("</BrowseNode>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Cart.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Cart.cs
new file mode 100644
index 0000000..b22811f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Cart.cs
@@ -0,0 +1,614 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Cart
+    {
+    
+        private String cartIdField;
+
+        private String HMACField;
+
+        private String URLEncodedHMACField;
+
+        private String purchaseURLField;
+
+        private  Price subTotalField;
+        private  CartItems cartItemsField;
+        private  SavedForLaterItems savedForLaterItemsField;
+        private  SimilarProducts similarProductsField;
+        private  TopSellers topSellersField;
+        private  NewReleases newReleasesField;
+        private  SimilarViewedProducts similarViewedProductsField;
+        private  OtherCategoriesSimilarProducts otherCategoriesSimilarProductsField;
+
+        /// <summary>
+        /// Gets and sets the CartId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartId")]
+        public String CartId
+        {
+            get { return this.cartIdField ; }
+            set { this.cartIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartId property
+        /// </summary>
+        /// <param name="cartId">CartId property</param>
+        /// <returns>this instance</returns>
+        public Cart WithCartId(String cartId)
+        {
+            this.cartIdField = cartId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartId property is set
+        /// </summary>
+        /// <returns>true if CartId property is set</returns>
+        public Boolean IsSetCartId()
+        {
+            return  this.cartIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HMAC")]
+        public String HMAC
+        {
+            get { return this.HMACField ; }
+            set { this.HMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HMAC property
+        /// </summary>
+        /// <param name="HMAC">HMAC property</param>
+        /// <returns>this instance</returns>
+        public Cart WithHMAC(String HMAC)
+        {
+            this.HMACField = HMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HMAC property is set
+        /// </summary>
+        /// <returns>true if HMAC property is set</returns>
+        public Boolean IsSetHMAC()
+        {
+            return  this.HMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the URLEncodedHMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "URLEncodedHMAC")]
+        public String URLEncodedHMAC
+        {
+            get { return this.URLEncodedHMACField ; }
+            set { this.URLEncodedHMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the URLEncodedHMAC property
+        /// </summary>
+        /// <param name="URLEncodedHMAC">URLEncodedHMAC property</param>
+        /// <returns>this instance</returns>
+        public Cart WithURLEncodedHMAC(String URLEncodedHMAC)
+        {
+            this.URLEncodedHMACField = URLEncodedHMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if URLEncodedHMAC property is set
+        /// </summary>
+        /// <returns>true if URLEncodedHMAC property is set</returns>
+        public Boolean IsSetURLEncodedHMAC()
+        {
+            return  this.URLEncodedHMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PurchaseURL property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PurchaseURL")]
+        public String PurchaseURL
+        {
+            get { return this.purchaseURLField ; }
+            set { this.purchaseURLField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PurchaseURL property
+        /// </summary>
+        /// <param name="purchaseURL">PurchaseURL property</param>
+        /// <returns>this instance</returns>
+        public Cart WithPurchaseURL(String purchaseURL)
+        {
+            this.purchaseURLField = purchaseURL;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PurchaseURL property is set
+        /// </summary>
+        /// <returns>true if PurchaseURL property is set</returns>
+        public Boolean IsSetPurchaseURL()
+        {
+            return  this.purchaseURLField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SubTotal property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubTotal")]
+        public Price SubTotal
+        {
+            get { return this.subTotalField ; }
+            set { this.subTotalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubTotal property
+        /// </summary>
+        /// <param name="subTotal">SubTotal property</param>
+        /// <returns>this instance</returns>
+        public Cart WithSubTotal(Price subTotal)
+        {
+            this.subTotalField = subTotal;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubTotal property is set
+        /// </summary>
+        /// <returns>true if SubTotal property is set</returns>
+        public Boolean IsSetSubTotal()
+        {
+            return this.subTotalField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CartItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartItems")]
+        public CartItems CartItems
+        {
+            get { return this.cartItemsField ; }
+            set { this.cartItemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartItems property
+        /// </summary>
+        /// <param name="cartItems">CartItems property</param>
+        /// <returns>this instance</returns>
+        public Cart WithCartItems(CartItems cartItems)
+        {
+            this.cartItemsField = cartItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartItems property is set
+        /// </summary>
+        /// <returns>true if CartItems property is set</returns>
+        public Boolean IsSetCartItems()
+        {
+            return this.cartItemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SavedForLaterItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SavedForLaterItems")]
+        public SavedForLaterItems SavedForLaterItems
+        {
+            get { return this.savedForLaterItemsField ; }
+            set { this.savedForLaterItemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SavedForLaterItems property
+        /// </summary>
+        /// <param name="savedForLaterItems">SavedForLaterItems property</param>
+        /// <returns>this instance</returns>
+        public Cart WithSavedForLaterItems(SavedForLaterItems savedForLaterItems)
+        {
+            this.savedForLaterItemsField = savedForLaterItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SavedForLaterItems property is set
+        /// </summary>
+        /// <returns>true if SavedForLaterItems property is set</returns>
+        public Boolean IsSetSavedForLaterItems()
+        {
+            return this.savedForLaterItemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SimilarProducts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarProducts")]
+        public SimilarProducts SimilarProducts
+        {
+            get { return this.similarProductsField ; }
+            set { this.similarProductsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarProducts property
+        /// </summary>
+        /// <param name="similarProducts">SimilarProducts property</param>
+        /// <returns>this instance</returns>
+        public Cart WithSimilarProducts(SimilarProducts similarProducts)
+        {
+            this.similarProductsField = similarProducts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SimilarProducts property is set
+        /// </summary>
+        /// <returns>true if SimilarProducts property is set</returns>
+        public Boolean IsSetSimilarProducts()
+        {
+            return this.similarProductsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TopSellers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TopSellers")]
+        public TopSellers TopSellers
+        {
+            get { return this.topSellersField ; }
+            set { this.topSellersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TopSellers property
+        /// </summary>
+        /// <param name="topSellers">TopSellers property</param>
+        /// <returns>this instance</returns>
+        public Cart WithTopSellers(TopSellers topSellers)
+        {
+            this.topSellersField = topSellers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TopSellers property is set
+        /// </summary>
+        /// <returns>true if TopSellers property is set</returns>
+        public Boolean IsSetTopSellers()
+        {
+            return this.topSellersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the NewReleases property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NewReleases")]
+        public NewReleases NewReleases
+        {
+            get { return this.newReleasesField ; }
+            set { this.newReleasesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NewReleases property
+        /// </summary>
+        /// <param name="newReleases">NewReleases property</param>
+        /// <returns>this instance</returns>
+        public Cart WithNewReleases(NewReleases newReleases)
+        {
+            this.newReleasesField = newReleases;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NewReleases property is set
+        /// </summary>
+        /// <returns>true if NewReleases property is set</returns>
+        public Boolean IsSetNewReleases()
+        {
+            return this.newReleasesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SimilarViewedProducts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarViewedProducts")]
+        public SimilarViewedProducts SimilarViewedProducts
+        {
+            get { return this.similarViewedProductsField ; }
+            set { this.similarViewedProductsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarViewedProducts property
+        /// </summary>
+        /// <param name="similarViewedProducts">SimilarViewedProducts property</param>
+        /// <returns>this instance</returns>
+        public Cart WithSimilarViewedProducts(SimilarViewedProducts similarViewedProducts)
+        {
+            this.similarViewedProductsField = similarViewedProducts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SimilarViewedProducts property is set
+        /// </summary>
+        /// <returns>true if SimilarViewedProducts property is set</returns>
+        public Boolean IsSetSimilarViewedProducts()
+        {
+            return this.similarViewedProductsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OtherCategoriesSimilarProducts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OtherCategoriesSimilarProducts")]
+        public OtherCategoriesSimilarProducts OtherCategoriesSimilarProducts
+        {
+            get { return this.otherCategoriesSimilarProductsField ; }
+            set { this.otherCategoriesSimilarProductsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OtherCategoriesSimilarProducts property
+        /// </summary>
+        /// <param name="otherCategoriesSimilarProducts">OtherCategoriesSimilarProducts property</param>
+        /// <returns>this instance</returns>
+        public Cart WithOtherCategoriesSimilarProducts(OtherCategoriesSimilarProducts otherCategoriesSimilarProducts)
+        {
+            this.otherCategoriesSimilarProductsField = otherCategoriesSimilarProducts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OtherCategoriesSimilarProducts property is set
+        /// </summary>
+        /// <returns>true if OtherCategoriesSimilarProducts property is set</returns>
+        public Boolean IsSetOtherCategoriesSimilarProducts()
+        {
+            return this.otherCategoriesSimilarProductsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartId()) {
+                xml.Append("<CartId>");
+                xml.Append(EscapeXML(this.CartId));
+                xml.Append("</CartId>");
+            }
+            if (IsSetHMAC()) {
+                xml.Append("<HMAC>");
+                xml.Append(EscapeXML(this.HMAC));
+                xml.Append("</HMAC>");
+            }
+            if (IsSetURLEncodedHMAC()) {
+                xml.Append("<URLEncodedHMAC>");
+                xml.Append(EscapeXML(this.URLEncodedHMAC));
+                xml.Append("</URLEncodedHMAC>");
+            }
+            if (IsSetPurchaseURL()) {
+                xml.Append("<PurchaseURL>");
+                xml.Append(EscapeXML(this.PurchaseURL));
+                xml.Append("</PurchaseURL>");
+            }
+            if (IsSetSubTotal()) {
+                Price  subTotal = this.SubTotal;
+                xml.Append("<SubTotal>");
+                xml.Append(subTotal.ToXMLFragment());
+                xml.Append("</SubTotal>");
+            } 
+            if (IsSetCartItems()) {
+                CartItems  cartItems = this.CartItems;
+                xml.Append("<CartItems>");
+                xml.Append(cartItems.ToXMLFragment());
+                xml.Append("</CartItems>");
+            } 
+            if (IsSetSavedForLaterItems()) {
+                SavedForLaterItems  savedForLaterItems = this.SavedForLaterItems;
+                xml.Append("<SavedForLaterItems>");
+                xml.Append(savedForLaterItems.ToXMLFragment());
+                xml.Append("</SavedForLaterItems>");
+            } 
+            if (IsSetSimilarProducts()) {
+                SimilarProducts  similarProducts = this.SimilarProducts;
+                xml.Append("<SimilarProducts>");
+                xml.Append(similarProducts.ToXMLFragment());
+                xml.Append("</SimilarProducts>");
+            } 
+            if (IsSetTopSellers()) {
+                TopSellers  topSellers = this.TopSellers;
+                xml.Append("<TopSellers>");
+                xml.Append(topSellers.ToXMLFragment());
+                xml.Append("</TopSellers>");
+            } 
+            if (IsSetNewReleases()) {
+                NewReleases  newReleases = this.NewReleases;
+                xml.Append("<NewReleases>");
+                xml.Append(newReleases.ToXMLFragment());
+                xml.Append("</NewReleases>");
+            } 
+            if (IsSetSimilarViewedProducts()) {
+                SimilarViewedProducts  similarViewedProducts = this.SimilarViewedProducts;
+                xml.Append("<SimilarViewedProducts>");
+                xml.Append(similarViewedProducts.ToXMLFragment());
+                xml.Append("</SimilarViewedProducts>");
+            } 
+            if (IsSetOtherCategoriesSimilarProducts()) {
+                OtherCategoriesSimilarProducts  otherCategoriesSimilarProducts = this.OtherCategoriesSimilarProducts;
+                xml.Append("<OtherCategoriesSimilarProducts>");
+                xml.Append(otherCategoriesSimilarProducts.ToXMLFragment());
+                xml.Append("</OtherCategoriesSimilarProducts>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAdd.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAdd.cs
new file mode 100644
index 0000000..bf46e2a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAdd.cs
@@ -0,0 +1,164 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartAdd
+    {
+    
+        private  List<CartAddRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CartAddRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CartAddRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CartAdd WithRequest(params CartAddRequest[] list)
+        {
+            foreach (CartAddRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CartAdd");
+            List<CartAddRequest> requestList = Request;
+            foreach (CartAddRequest request in requestList) 
+            {
+                if (request.IsSetCartId()) 
+                {
+                    parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "CartId", request.CartId);
+                }
+                if (request.IsSetHMAC()) 
+                {
+                    parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "HMAC", request.HMAC);
+                }
+                if (request.IsSetMergeCart()) 
+                {
+                    parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "MergeCart", request.MergeCart);
+                }
+                if (request.IsSetItems()) 
+                {
+                    CartAddItems  items = request.Items;
+                    List<CartAddItem> itemList = items.Item;
+                    foreach (CartAddItem item in itemList) 
+                    {
+                        if (item.IsSetASIN()) 
+                        {
+                            parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "ASIN", item.ASIN);
+                        }
+                        if (item.IsSetOfferListingId()) 
+                        {
+                            parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "OfferListingId", item.OfferListingId);
+                        }
+                        if (item.IsSetQuantity()) 
+                        {
+                            parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "Quantity", item.Quantity + "");
+                        }
+                        if (item.IsSetAssociateTag()) 
+                        {
+                            parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "AssociateTag", item.AssociateTag);
+                        }
+                        if (item.IsSetListItemId()) 
+                        {
+                            parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "ListItemId", item.ListItemId);
+                        }
+                        List<MetaData> metaDataList = item.MetaData;
+                        foreach (MetaData metaData in metaDataList) 
+                        {
+                            if (metaData.IsSetKey()) 
+                            {
+                                parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "MetaData" + "."  + (metaDataList.IndexOf(metaData) + 1) + "." + "Key", metaData.Key);
+                            }
+                            if (metaData.IsSetValue()) 
+                            {
+                                parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "MetaData" + "."  + (metaDataList.IndexOf(metaData) + 1) + "." + "Value", metaData.Value);
+                            }
+
+                        }
+
+                    }
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CartAdd" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItem.cs
new file mode 100644
index 0000000..14d3b15
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItem.cs
@@ -0,0 +1,358 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartAddItem
+    {
+    
+        private String ASINField;
+
+        private String offerListingIdField;
+
+        private Decimal? quantityField;
+
+        private String associateTagField;
+
+        private String listItemIdField;
+
+        private  List<MetaData> metaDataField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OfferListingId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferListingId")]
+        public String OfferListingId
+        {
+            get { return this.offerListingIdField ; }
+            set { this.offerListingIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferListingId property
+        /// </summary>
+        /// <param name="offerListingId">OfferListingId property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithOfferListingId(String offerListingId)
+        {
+            this.offerListingIdField = offerListingId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferListingId property is set
+        /// </summary>
+        /// <returns>true if OfferListingId property is set</returns>
+        public Boolean IsSetOfferListingId()
+        {
+            return  this.offerListingIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssociateTag property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssociateTag")]
+        public String AssociateTag
+        {
+            get { return this.associateTagField ; }
+            set { this.associateTagField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssociateTag property
+        /// </summary>
+        /// <param name="associateTag">AssociateTag property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithAssociateTag(String associateTag)
+        {
+            this.associateTagField = associateTag;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssociateTag property is set
+        /// </summary>
+        /// <returns>true if AssociateTag property is set</returns>
+        public Boolean IsSetAssociateTag()
+        {
+            return  this.associateTagField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListItemId")]
+        public String ListItemId
+        {
+            get { return this.listItemIdField ; }
+            set { this.listItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListItemId property
+        /// </summary>
+        /// <param name="listItemId">ListItemId property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithListItemId(String listItemId)
+        {
+            this.listItemIdField = listItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListItemId property is set
+        /// </summary>
+        /// <returns>true if ListItemId property is set</returns>
+        public Boolean IsSetListItemId()
+        {
+            return  this.listItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetaData property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetaData")]
+        public List<MetaData> MetaData
+        {
+            get
+            {
+                if (this.metaDataField == null)
+                {
+                    this.metaDataField = new List<MetaData>();
+                }
+                return this.metaDataField;
+            }
+            set { this.metaDataField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetaData property
+        /// </summary>
+        /// <param name="list">MetaData property</param>
+        /// <returns>this instance</returns>
+        public CartAddItem WithMetaData(params MetaData[] list)
+        {
+            foreach (MetaData item in list)
+            {
+                MetaData.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if MetaData property is set
+        /// </summary>
+        /// <returns>true if MetaData property is set</returns>
+        public Boolean IsSetMetaData()
+        {
+            return (MetaData.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetOfferListingId()) {
+                xml.Append("<OfferListingId>");
+                xml.Append(EscapeXML(this.OfferListingId));
+                xml.Append("</OfferListingId>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            if (IsSetAssociateTag()) {
+                xml.Append("<AssociateTag>");
+                xml.Append(EscapeXML(this.AssociateTag));
+                xml.Append("</AssociateTag>");
+            }
+            if (IsSetListItemId()) {
+                xml.Append("<ListItemId>");
+                xml.Append(EscapeXML(this.ListItemId));
+                xml.Append("</ListItemId>");
+            }
+            List<MetaData> metaDataList = this.MetaData;
+            foreach (MetaData metaData in metaDataList) {
+                xml.Append("<MetaData>");
+                xml.Append(metaData.ToXMLFragment());
+                xml.Append("</MetaData>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItems.cs
new file mode 100644
index 0000000..2ad3ffd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddItems.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartAddItems
+    {
+    
+        private  List<CartAddItem> itemField;
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public List<CartAddItem> Item
+        {
+            get
+            {
+                if (this.itemField == null)
+                {
+                    this.itemField = new List<CartAddItem>();
+                }
+                return this.itemField;
+            }
+            set { this.itemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="list">Item property</param>
+        /// <returns>this instance</returns>
+        public CartAddItems WithItem(params CartAddItem[] list)
+        {
+            foreach (CartAddItem item in list)
+            {
+                Item.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return (Item.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<CartAddItem> itemList = this.Item;
+            foreach (CartAddItem item in itemList) {
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddRequest.cs
new file mode 100644
index 0000000..c2219ab
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddRequest.cs
@@ -0,0 +1,318 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartAddRequest
+    {
+    
+        private String cartIdField;
+
+        private String HMACField;
+
+        private String mergeCartField;
+
+        private  CartAddItems itemsField;
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the CartId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartId")]
+        public String CartId
+        {
+            get { return this.cartIdField ; }
+            set { this.cartIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartId property
+        /// </summary>
+        /// <param name="cartId">CartId property</param>
+        /// <returns>this instance</returns>
+        public CartAddRequest WithCartId(String cartId)
+        {
+            this.cartIdField = cartId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartId property is set
+        /// </summary>
+        /// <returns>true if CartId property is set</returns>
+        public Boolean IsSetCartId()
+        {
+            return  this.cartIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HMAC")]
+        public String HMAC
+        {
+            get { return this.HMACField ; }
+            set { this.HMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HMAC property
+        /// </summary>
+        /// <param name="HMAC">HMAC property</param>
+        /// <returns>this instance</returns>
+        public CartAddRequest WithHMAC(String HMAC)
+        {
+            this.HMACField = HMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HMAC property is set
+        /// </summary>
+        /// <returns>true if HMAC property is set</returns>
+        public Boolean IsSetHMAC()
+        {
+            return  this.HMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MergeCart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MergeCart")]
+        public String MergeCart
+        {
+            get { return this.mergeCartField ; }
+            set { this.mergeCartField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MergeCart property
+        /// </summary>
+        /// <param name="mergeCart">MergeCart property</param>
+        /// <returns>this instance</returns>
+        public CartAddRequest WithMergeCart(String mergeCart)
+        {
+            this.mergeCartField = mergeCart;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MergeCart property is set
+        /// </summary>
+        /// <returns>true if MergeCart property is set</returns>
+        public Boolean IsSetMergeCart()
+        {
+            return  this.mergeCartField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public CartAddItems Items
+        {
+            get { return this.itemsField ; }
+            set { this.itemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="items">Items property</param>
+        /// <returns>this instance</returns>
+        public CartAddRequest WithItems(CartAddItems items)
+        {
+            this.itemsField = items;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return this.itemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CartAddRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartId()) {
+                xml.Append("<CartId>");
+                xml.Append(EscapeXML(this.CartId));
+                xml.Append("</CartId>");
+            }
+            if (IsSetHMAC()) {
+                xml.Append("<HMAC>");
+                xml.Append(EscapeXML(this.HMAC));
+                xml.Append("</HMAC>");
+            }
+            if (IsSetMergeCart()) {
+                xml.Append("<MergeCart>");
+                xml.Append(EscapeXML(this.MergeCart));
+                xml.Append("</MergeCart>");
+            }
+            if (IsSetItems()) {
+                CartAddItems  items = this.Items;
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            } 
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddResponse.cs
new file mode 100644
index 0000000..fd4a191
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartAddResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartAddResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Cart> cartField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CartAddResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Cart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cart")]
+        public List<Cart> Cart
+        {
+            get
+            {
+                if (this.cartField == null)
+                {
+                    this.cartField = new List<Cart>();
+                }
+                return this.cartField;
+            }
+            set { this.cartField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cart property
+        /// </summary>
+        /// <param name="list">Cart property</param>
+        /// <returns>this instance</returns>
+        public CartAddResponse WithCart(params Cart[] list)
+        {
+            foreach (Cart item in list)
+            {
+                Cart.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Cart property is set
+        /// </summary>
+        /// <returns>true if Cart property is set</returns>
+        public Boolean IsSetCart()
+        {
+            return (Cart.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CartAddResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Cart> cartList = this.Cart;
+            foreach (Cart cart in cartList) {
+                xml.Append("<Cart>");
+                xml.Append(cart.ToXMLFragment());
+                xml.Append("</Cart>");
+            }
+            xml.Append("</CartAddResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClear.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClear.cs
new file mode 100644
index 0000000..ee2ffc5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClear.cs
@@ -0,0 +1,122 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartClear
+    {
+    
+        private  List<CartClearRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CartClearRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CartClearRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CartClear WithRequest(params CartClearRequest[] list)
+        {
+            foreach (CartClearRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CartClear");
+            List<CartClearRequest> requestList = Request;
+            foreach (CartClearRequest request in requestList) 
+            {
+                if (request.IsSetCartId()) 
+                {
+                    parameters.Add("CartClear" + "."  + (requestList.IndexOf(request) + 1) + "." + "CartId", request.CartId);
+                }
+                if (request.IsSetHMAC()) 
+                {
+                    parameters.Add("CartClear" + "."  + (requestList.IndexOf(request) + 1) + "." + "HMAC", request.HMAC);
+                }
+                if (request.IsSetMergeCart()) 
+                {
+                    parameters.Add("CartClear" + "."  + (requestList.IndexOf(request) + 1) + "." + "MergeCart", request.MergeCart);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CartClear" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearRequest.cs
new file mode 100644
index 0000000..9eeddac
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearRequest.cs
@@ -0,0 +1,274 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartClearRequest
+    {
+    
+        private String cartIdField;
+
+        private String HMACField;
+
+        private String mergeCartField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the CartId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartId")]
+        public String CartId
+        {
+            get { return this.cartIdField ; }
+            set { this.cartIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartId property
+        /// </summary>
+        /// <param name="cartId">CartId property</param>
+        /// <returns>this instance</returns>
+        public CartClearRequest WithCartId(String cartId)
+        {
+            this.cartIdField = cartId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartId property is set
+        /// </summary>
+        /// <returns>true if CartId property is set</returns>
+        public Boolean IsSetCartId()
+        {
+            return  this.cartIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HMAC")]
+        public String HMAC
+        {
+            get { return this.HMACField ; }
+            set { this.HMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HMAC property
+        /// </summary>
+        /// <param name="HMAC">HMAC property</param>
+        /// <returns>this instance</returns>
+        public CartClearRequest WithHMAC(String HMAC)
+        {
+            this.HMACField = HMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HMAC property is set
+        /// </summary>
+        /// <returns>true if HMAC property is set</returns>
+        public Boolean IsSetHMAC()
+        {
+            return  this.HMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MergeCart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MergeCart")]
+        public String MergeCart
+        {
+            get { return this.mergeCartField ; }
+            set { this.mergeCartField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MergeCart property
+        /// </summary>
+        /// <param name="mergeCart">MergeCart property</param>
+        /// <returns>this instance</returns>
+        public CartClearRequest WithMergeCart(String mergeCart)
+        {
+            this.mergeCartField = mergeCart;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MergeCart property is set
+        /// </summary>
+        /// <returns>true if MergeCart property is set</returns>
+        public Boolean IsSetMergeCart()
+        {
+            return  this.mergeCartField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CartClearRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartId()) {
+                xml.Append("<CartId>");
+                xml.Append(EscapeXML(this.CartId));
+                xml.Append("</CartId>");
+            }
+            if (IsSetHMAC()) {
+                xml.Append("<HMAC>");
+                xml.Append(EscapeXML(this.HMAC));
+                xml.Append("</HMAC>");
+            }
+            if (IsSetMergeCart()) {
+                xml.Append("<MergeCart>");
+                xml.Append(EscapeXML(this.MergeCart));
+                xml.Append("</MergeCart>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearResponse.cs
new file mode 100644
index 0000000..24dee16
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartClearResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartClearResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Cart> cartField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CartClearResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Cart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cart")]
+        public List<Cart> Cart
+        {
+            get
+            {
+                if (this.cartField == null)
+                {
+                    this.cartField = new List<Cart>();
+                }
+                return this.cartField;
+            }
+            set { this.cartField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cart property
+        /// </summary>
+        /// <param name="list">Cart property</param>
+        /// <returns>this instance</returns>
+        public CartClearResponse WithCart(params Cart[] list)
+        {
+            foreach (Cart item in list)
+            {
+                Cart.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Cart property is set
+        /// </summary>
+        /// <returns>true if Cart property is set</returns>
+        public Boolean IsSetCart()
+        {
+            return (Cart.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CartClearResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Cart> cartList = this.Cart;
+            foreach (Cart cart in cartList) {
+                xml.Append("<Cart>");
+                xml.Append(cart.ToXMLFragment());
+                xml.Append("</Cart>");
+            }
+            xml.Append("</CartClearResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreate.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreate.cs
new file mode 100644
index 0000000..4140ea8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreate.cs
@@ -0,0 +1,156 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartCreate
+    {
+    
+        private  List<CartCreateRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CartCreateRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CartCreateRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CartCreate WithRequest(params CartCreateRequest[] list)
+        {
+            foreach (CartCreateRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CartCreate");
+            List<CartCreateRequest> requestList = Request;
+            foreach (CartCreateRequest request in requestList) 
+            {
+                if (request.IsSetMergeCart()) 
+                {
+                    parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "MergeCart", request.MergeCart);
+                }
+                if (request.IsSetItems()) 
+                {
+                    CartCreateItems  items = request.Items;
+                    List<CartCreateItem> itemList = items.Item;
+                    foreach (CartCreateItem item in itemList) 
+                    {
+                        if (item.IsSetASIN()) 
+                        {
+                            parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "ASIN", item.ASIN);
+                        }
+                        if (item.IsSetOfferListingId()) 
+                        {
+                            parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "OfferListingId", item.OfferListingId);
+                        }
+                        if (item.IsSetQuantity()) 
+                        {
+                            parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "Quantity", item.Quantity + "");
+                        }
+                        if (item.IsSetAssociateTag()) 
+                        {
+                            parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "AssociateTag", item.AssociateTag);
+                        }
+                        if (item.IsSetListItemId()) 
+                        {
+                            parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "ListItemId", item.ListItemId);
+                        }
+                        List<MetaData> metaDataList = item.MetaData;
+                        foreach (MetaData metaData in metaDataList) 
+                        {
+                            if (metaData.IsSetKey()) 
+                            {
+                                parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "MetaData" + "."  + (metaDataList.IndexOf(metaData) + 1) + "." + "Key", metaData.Key);
+                            }
+                            if (metaData.IsSetValue()) 
+                            {
+                                parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "MetaData" + "."  + (metaDataList.IndexOf(metaData) + 1) + "." + "Value", metaData.Value);
+                            }
+
+                        }
+
+                    }
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CartCreate" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItem.cs
new file mode 100644
index 0000000..619b6a9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItem.cs
@@ -0,0 +1,358 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartCreateItem
+    {
+    
+        private String ASINField;
+
+        private String offerListingIdField;
+
+        private Decimal? quantityField;
+
+        private String associateTagField;
+
+        private String listItemIdField;
+
+        private  List<MetaData> metaDataField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OfferListingId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferListingId")]
+        public String OfferListingId
+        {
+            get { return this.offerListingIdField ; }
+            set { this.offerListingIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferListingId property
+        /// </summary>
+        /// <param name="offerListingId">OfferListingId property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithOfferListingId(String offerListingId)
+        {
+            this.offerListingIdField = offerListingId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferListingId property is set
+        /// </summary>
+        /// <returns>true if OfferListingId property is set</returns>
+        public Boolean IsSetOfferListingId()
+        {
+            return  this.offerListingIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssociateTag property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssociateTag")]
+        public String AssociateTag
+        {
+            get { return this.associateTagField ; }
+            set { this.associateTagField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssociateTag property
+        /// </summary>
+        /// <param name="associateTag">AssociateTag property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithAssociateTag(String associateTag)
+        {
+            this.associateTagField = associateTag;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssociateTag property is set
+        /// </summary>
+        /// <returns>true if AssociateTag property is set</returns>
+        public Boolean IsSetAssociateTag()
+        {
+            return  this.associateTagField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListItemId")]
+        public String ListItemId
+        {
+            get { return this.listItemIdField ; }
+            set { this.listItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListItemId property
+        /// </summary>
+        /// <param name="listItemId">ListItemId property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithListItemId(String listItemId)
+        {
+            this.listItemIdField = listItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListItemId property is set
+        /// </summary>
+        /// <returns>true if ListItemId property is set</returns>
+        public Boolean IsSetListItemId()
+        {
+            return  this.listItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetaData property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetaData")]
+        public List<MetaData> MetaData
+        {
+            get
+            {
+                if (this.metaDataField == null)
+                {
+                    this.metaDataField = new List<MetaData>();
+                }
+                return this.metaDataField;
+            }
+            set { this.metaDataField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetaData property
+        /// </summary>
+        /// <param name="list">MetaData property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItem WithMetaData(params MetaData[] list)
+        {
+            foreach (MetaData item in list)
+            {
+                MetaData.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if MetaData property is set
+        /// </summary>
+        /// <returns>true if MetaData property is set</returns>
+        public Boolean IsSetMetaData()
+        {
+            return (MetaData.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetOfferListingId()) {
+                xml.Append("<OfferListingId>");
+                xml.Append(EscapeXML(this.OfferListingId));
+                xml.Append("</OfferListingId>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            if (IsSetAssociateTag()) {
+                xml.Append("<AssociateTag>");
+                xml.Append(EscapeXML(this.AssociateTag));
+                xml.Append("</AssociateTag>");
+            }
+            if (IsSetListItemId()) {
+                xml.Append("<ListItemId>");
+                xml.Append(EscapeXML(this.ListItemId));
+                xml.Append("</ListItemId>");
+            }
+            List<MetaData> metaDataList = this.MetaData;
+            foreach (MetaData metaData in metaDataList) {
+                xml.Append("<MetaData>");
+                xml.Append(metaData.ToXMLFragment());
+                xml.Append("</MetaData>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItems.cs
new file mode 100644
index 0000000..904e428
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateItems.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartCreateItems
+    {
+    
+        private  List<CartCreateItem> itemField;
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public List<CartCreateItem> Item
+        {
+            get
+            {
+                if (this.itemField == null)
+                {
+                    this.itemField = new List<CartCreateItem>();
+                }
+                return this.itemField;
+            }
+            set { this.itemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="list">Item property</param>
+        /// <returns>this instance</returns>
+        public CartCreateItems WithItem(params CartCreateItem[] list)
+        {
+            foreach (CartCreateItem item in list)
+            {
+                Item.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return (Item.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<CartCreateItem> itemList = this.Item;
+            foreach (CartCreateItem item in itemList) {
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateRequest.cs
new file mode 100644
index 0000000..84d33e6
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateRequest.cs
@@ -0,0 +1,232 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartCreateRequest
+    {
+    
+        private String mergeCartField;
+
+        private  CartCreateItems itemsField;
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the MergeCart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MergeCart")]
+        public String MergeCart
+        {
+            get { return this.mergeCartField ; }
+            set { this.mergeCartField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MergeCart property
+        /// </summary>
+        /// <param name="mergeCart">MergeCart property</param>
+        /// <returns>this instance</returns>
+        public CartCreateRequest WithMergeCart(String mergeCart)
+        {
+            this.mergeCartField = mergeCart;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MergeCart property is set
+        /// </summary>
+        /// <returns>true if MergeCart property is set</returns>
+        public Boolean IsSetMergeCart()
+        {
+            return  this.mergeCartField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public CartCreateItems Items
+        {
+            get { return this.itemsField ; }
+            set { this.itemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="items">Items property</param>
+        /// <returns>this instance</returns>
+        public CartCreateRequest WithItems(CartCreateItems items)
+        {
+            this.itemsField = items;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return this.itemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CartCreateRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetMergeCart()) {
+                xml.Append("<MergeCart>");
+                xml.Append(EscapeXML(this.MergeCart));
+                xml.Append("</MergeCart>");
+            }
+            if (IsSetItems()) {
+                CartCreateItems  items = this.Items;
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            } 
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateResponse.cs
new file mode 100644
index 0000000..41455a7
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartCreateResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartCreateResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Cart> cartField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CartCreateResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Cart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cart")]
+        public List<Cart> Cart
+        {
+            get
+            {
+                if (this.cartField == null)
+                {
+                    this.cartField = new List<Cart>();
+                }
+                return this.cartField;
+            }
+            set { this.cartField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cart property
+        /// </summary>
+        /// <param name="list">Cart property</param>
+        /// <returns>this instance</returns>
+        public CartCreateResponse WithCart(params Cart[] list)
+        {
+            foreach (Cart item in list)
+            {
+                Cart.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Cart property is set
+        /// </summary>
+        /// <returns>true if Cart property is set</returns>
+        public Boolean IsSetCart()
+        {
+            return (Cart.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CartCreateResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Cart> cartList = this.Cart;
+            foreach (Cart cart in cartList) {
+                xml.Append("<Cart>");
+                xml.Append(cart.ToXMLFragment());
+                xml.Append("</Cart>");
+            }
+            xml.Append("</CartCreateResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGet.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGet.cs
new file mode 100644
index 0000000..44dddf9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGet.cs
@@ -0,0 +1,122 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartGet
+    {
+    
+        private  List<CartGetRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CartGetRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CartGetRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CartGet WithRequest(params CartGetRequest[] list)
+        {
+            foreach (CartGetRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CartGet");
+            List<CartGetRequest> requestList = Request;
+            foreach (CartGetRequest request in requestList) 
+            {
+                if (request.IsSetCartId()) 
+                {
+                    parameters.Add("CartGet" + "."  + (requestList.IndexOf(request) + 1) + "." + "CartId", request.CartId);
+                }
+                if (request.IsSetHMAC()) 
+                {
+                    parameters.Add("CartGet" + "."  + (requestList.IndexOf(request) + 1) + "." + "HMAC", request.HMAC);
+                }
+                if (request.IsSetMergeCart()) 
+                {
+                    parameters.Add("CartGet" + "."  + (requestList.IndexOf(request) + 1) + "." + "MergeCart", request.MergeCart);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CartGet" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetRequest.cs
new file mode 100644
index 0000000..d1ff12a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetRequest.cs
@@ -0,0 +1,274 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartGetRequest
+    {
+    
+        private String cartIdField;
+
+        private String HMACField;
+
+        private String mergeCartField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the CartId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartId")]
+        public String CartId
+        {
+            get { return this.cartIdField ; }
+            set { this.cartIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartId property
+        /// </summary>
+        /// <param name="cartId">CartId property</param>
+        /// <returns>this instance</returns>
+        public CartGetRequest WithCartId(String cartId)
+        {
+            this.cartIdField = cartId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartId property is set
+        /// </summary>
+        /// <returns>true if CartId property is set</returns>
+        public Boolean IsSetCartId()
+        {
+            return  this.cartIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HMAC")]
+        public String HMAC
+        {
+            get { return this.HMACField ; }
+            set { this.HMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HMAC property
+        /// </summary>
+        /// <param name="HMAC">HMAC property</param>
+        /// <returns>this instance</returns>
+        public CartGetRequest WithHMAC(String HMAC)
+        {
+            this.HMACField = HMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HMAC property is set
+        /// </summary>
+        /// <returns>true if HMAC property is set</returns>
+        public Boolean IsSetHMAC()
+        {
+            return  this.HMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MergeCart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MergeCart")]
+        public String MergeCart
+        {
+            get { return this.mergeCartField ; }
+            set { this.mergeCartField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MergeCart property
+        /// </summary>
+        /// <param name="mergeCart">MergeCart property</param>
+        /// <returns>this instance</returns>
+        public CartGetRequest WithMergeCart(String mergeCart)
+        {
+            this.mergeCartField = mergeCart;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MergeCart property is set
+        /// </summary>
+        /// <returns>true if MergeCart property is set</returns>
+        public Boolean IsSetMergeCart()
+        {
+            return  this.mergeCartField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CartGetRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartId()) {
+                xml.Append("<CartId>");
+                xml.Append(EscapeXML(this.CartId));
+                xml.Append("</CartId>");
+            }
+            if (IsSetHMAC()) {
+                xml.Append("<HMAC>");
+                xml.Append(EscapeXML(this.HMAC));
+                xml.Append("</HMAC>");
+            }
+            if (IsSetMergeCart()) {
+                xml.Append("<MergeCart>");
+                xml.Append(EscapeXML(this.MergeCart));
+                xml.Append("</MergeCart>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetResponse.cs
new file mode 100644
index 0000000..d30541b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartGetResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartGetResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Cart> cartField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CartGetResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Cart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cart")]
+        public List<Cart> Cart
+        {
+            get
+            {
+                if (this.cartField == null)
+                {
+                    this.cartField = new List<Cart>();
+                }
+                return this.cartField;
+            }
+            set { this.cartField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cart property
+        /// </summary>
+        /// <param name="list">Cart property</param>
+        /// <returns>this instance</returns>
+        public CartGetResponse WithCart(params Cart[] list)
+        {
+            foreach (Cart item in list)
+            {
+                Cart.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Cart property is set
+        /// </summary>
+        /// <returns>true if Cart property is set</returns>
+        public Boolean IsSetCart()
+        {
+            return (Cart.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CartGetResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Cart> cartList = this.Cart;
+            foreach (Cart cart in cartList) {
+                xml.Append("<Cart>");
+                xml.Append(cart.ToXMLFragment());
+                xml.Append("</Cart>");
+            }
+            xml.Append("</CartGetResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItem.cs
new file mode 100644
index 0000000..c225e82
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItem.cs
@@ -0,0 +1,695 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartItem
+    {
+    
+        private String cartItemIdField;
+
+        private String ASINField;
+
+        private String exchangeIdField;
+
+        private String merchantIdField;
+
+        private String sellerIdField;
+
+        private String sellerNicknameField;
+
+        private String quantityField;
+
+        private String titleField;
+
+        private String productGroupField;
+
+        private String listOwnerField;
+
+        private String listTypeField;
+
+        private  CartItemMetaData metaDataField;
+        private  Price priceField;
+        private  Price itemTotalField;
+
+        /// <summary>
+        /// Gets and sets the CartItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartItemId")]
+        public String CartItemId
+        {
+            get { return this.cartItemIdField ; }
+            set { this.cartItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartItemId property
+        /// </summary>
+        /// <param name="cartItemId">CartItemId property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithCartItemId(String cartItemId)
+        {
+            this.cartItemIdField = cartItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartItemId property is set
+        /// </summary>
+        /// <returns>true if CartItemId property is set</returns>
+        public Boolean IsSetCartItemId()
+        {
+            return  this.cartItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ExchangeId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ExchangeId")]
+        public String ExchangeId
+        {
+            get { return this.exchangeIdField ; }
+            set { this.exchangeIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ExchangeId property
+        /// </summary>
+        /// <param name="exchangeId">ExchangeId property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithExchangeId(String exchangeId)
+        {
+            this.exchangeIdField = exchangeId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ExchangeId property is set
+        /// </summary>
+        /// <returns>true if ExchangeId property is set</returns>
+        public Boolean IsSetExchangeId()
+        {
+            return  this.exchangeIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public String SellerId
+        {
+            get { return this.sellerIdField ; }
+            set { this.sellerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="sellerId">SellerId property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithSellerId(String sellerId)
+        {
+            this.sellerIdField = sellerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return  this.sellerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerNickname property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerNickname")]
+        public String SellerNickname
+        {
+            get { return this.sellerNicknameField ; }
+            set { this.sellerNicknameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerNickname property
+        /// </summary>
+        /// <param name="sellerNickname">SellerNickname property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithSellerNickname(String sellerNickname)
+        {
+            this.sellerNicknameField = sellerNickname;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerNickname property is set
+        /// </summary>
+        /// <returns>true if SellerNickname property is set</returns>
+        public Boolean IsSetSellerNickname()
+        {
+            return  this.sellerNicknameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public String Quantity
+        {
+            get { return this.quantityField ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithQuantity(String quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductGroup")]
+        public String ProductGroup
+        {
+            get { return this.productGroupField ; }
+            set { this.productGroupField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductGroup property
+        /// </summary>
+        /// <param name="productGroup">ProductGroup property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithProductGroup(String productGroup)
+        {
+            this.productGroupField = productGroup;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductGroup property is set
+        /// </summary>
+        /// <returns>true if ProductGroup property is set</returns>
+        public Boolean IsSetProductGroup()
+        {
+            return  this.productGroupField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListOwner property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListOwner")]
+        public String ListOwner
+        {
+            get { return this.listOwnerField ; }
+            set { this.listOwnerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListOwner property
+        /// </summary>
+        /// <param name="listOwner">ListOwner property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithListOwner(String listOwner)
+        {
+            this.listOwnerField = listOwner;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListOwner property is set
+        /// </summary>
+        /// <returns>true if ListOwner property is set</returns>
+        public Boolean IsSetListOwner()
+        {
+            return  this.listOwnerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListType")]
+        public String ListType
+        {
+            get { return this.listTypeField ; }
+            set { this.listTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListType property
+        /// </summary>
+        /// <param name="listType">ListType property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithListType(String listType)
+        {
+            this.listTypeField = listType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListType property is set
+        /// </summary>
+        /// <returns>true if ListType property is set</returns>
+        public Boolean IsSetListType()
+        {
+            return  this.listTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetaData property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetaData")]
+        public CartItemMetaData MetaData
+        {
+            get { return this.metaDataField ; }
+            set { this.metaDataField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetaData property
+        /// </summary>
+        /// <param name="metaData">MetaData property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithMetaData(CartItemMetaData metaData)
+        {
+            this.metaDataField = metaData;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MetaData property is set
+        /// </summary>
+        /// <returns>true if MetaData property is set</returns>
+        public Boolean IsSetMetaData()
+        {
+            return this.metaDataField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Price property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Price")]
+        public Price Price
+        {
+            get { return this.priceField ; }
+            set { this.priceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Price property
+        /// </summary>
+        /// <param name="price">Price property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithPrice(Price price)
+        {
+            this.priceField = price;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Price property is set
+        /// </summary>
+        /// <returns>true if Price property is set</returns>
+        public Boolean IsSetPrice()
+        {
+            return this.priceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ItemTotal property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemTotal")]
+        public Price ItemTotal
+        {
+            get { return this.itemTotalField ; }
+            set { this.itemTotalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemTotal property
+        /// </summary>
+        /// <param name="itemTotal">ItemTotal property</param>
+        /// <returns>this instance</returns>
+        public CartItem WithItemTotal(Price itemTotal)
+        {
+            this.itemTotalField = itemTotal;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemTotal property is set
+        /// </summary>
+        /// <returns>true if ItemTotal property is set</returns>
+        public Boolean IsSetItemTotal()
+        {
+            return this.itemTotalField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartItemId()) {
+                xml.Append("<CartItemId>");
+                xml.Append(EscapeXML(this.CartItemId));
+                xml.Append("</CartItemId>");
+            }
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetExchangeId()) {
+                xml.Append("<ExchangeId>");
+                xml.Append(EscapeXML(this.ExchangeId));
+                xml.Append("</ExchangeId>");
+            }
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetSellerId()) {
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(this.SellerId));
+                xml.Append("</SellerId>");
+            }
+            if (IsSetSellerNickname()) {
+                xml.Append("<SellerNickname>");
+                xml.Append(EscapeXML(this.SellerNickname));
+                xml.Append("</SellerNickname>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(EscapeXML(this.Quantity));
+                xml.Append("</Quantity>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetProductGroup()) {
+                xml.Append("<ProductGroup>");
+                xml.Append(EscapeXML(this.ProductGroup));
+                xml.Append("</ProductGroup>");
+            }
+            if (IsSetListOwner()) {
+                xml.Append("<ListOwner>");
+                xml.Append(EscapeXML(this.ListOwner));
+                xml.Append("</ListOwner>");
+            }
+            if (IsSetListType()) {
+                xml.Append("<ListType>");
+                xml.Append(EscapeXML(this.ListType));
+                xml.Append("</ListType>");
+            }
+            if (IsSetMetaData()) {
+                CartItemMetaData  metaData = this.MetaData;
+                xml.Append("<MetaData>");
+                xml.Append(metaData.ToXMLFragment());
+                xml.Append("</MetaData>");
+            } 
+            if (IsSetPrice()) {
+                Price  price = this.Price;
+                xml.Append("<Price>");
+                xml.Append(price.ToXMLFragment());
+                xml.Append("</Price>");
+            } 
+            if (IsSetItemTotal()) {
+                Price  itemTotal = this.ItemTotal;
+                xml.Append("<ItemTotal>");
+                xml.Append(itemTotal.ToXMLFragment());
+                xml.Append("</ItemTotal>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItemMetaData.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItemMetaData.cs
new file mode 100644
index 0000000..23bab3f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItemMetaData.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartItemMetaData
+    {
+    
+        private  List<MetaData> keyValuePairField;
+
+
+        /// <summary>
+        /// Gets and sets the KeyValuePair property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "KeyValuePair")]
+        public List<MetaData> KeyValuePair
+        {
+            get
+            {
+                if (this.keyValuePairField == null)
+                {
+                    this.keyValuePairField = new List<MetaData>();
+                }
+                return this.keyValuePairField;
+            }
+            set { this.keyValuePairField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the KeyValuePair property
+        /// </summary>
+        /// <param name="list">KeyValuePair property</param>
+        /// <returns>this instance</returns>
+        public CartItemMetaData WithKeyValuePair(params MetaData[] list)
+        {
+            foreach (MetaData item in list)
+            {
+                KeyValuePair.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if KeyValuePair property is set
+        /// </summary>
+        /// <returns>true if KeyValuePair property is set</returns>
+        public Boolean IsSetKeyValuePair()
+        {
+            return (KeyValuePair.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<MetaData> keyValuePairList = this.KeyValuePair;
+            foreach (MetaData keyValuePair in keyValuePairList) {
+                xml.Append("<KeyValuePair>");
+                xml.Append(keyValuePair.ToXMLFragment());
+                xml.Append("</KeyValuePair>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItems.cs
new file mode 100644
index 0000000..c2fe748
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartItems.cs
@@ -0,0 +1,187 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartItems
+    {
+    
+        private  Price subTotalField;
+        private  List<CartItem> cartItemField;
+
+
+        /// <summary>
+        /// Gets and sets the SubTotal property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubTotal")]
+        public Price SubTotal
+        {
+            get { return this.subTotalField ; }
+            set { this.subTotalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubTotal property
+        /// </summary>
+        /// <param name="subTotal">SubTotal property</param>
+        /// <returns>this instance</returns>
+        public CartItems WithSubTotal(Price subTotal)
+        {
+            this.subTotalField = subTotal;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubTotal property is set
+        /// </summary>
+        /// <returns>true if SubTotal property is set</returns>
+        public Boolean IsSetSubTotal()
+        {
+            return this.subTotalField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CartItem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartItem")]
+        public List<CartItem> CartItem
+        {
+            get
+            {
+                if (this.cartItemField == null)
+                {
+                    this.cartItemField = new List<CartItem>();
+                }
+                return this.cartItemField;
+            }
+            set { this.cartItemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartItem property
+        /// </summary>
+        /// <param name="list">CartItem property</param>
+        /// <returns>this instance</returns>
+        public CartItems WithCartItem(params CartItem[] list)
+        {
+            foreach (CartItem item in list)
+            {
+                CartItem.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if CartItem property is set
+        /// </summary>
+        /// <returns>true if CartItem property is set</returns>
+        public Boolean IsSetCartItem()
+        {
+            return (CartItem.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSubTotal()) {
+                Price  subTotal = this.SubTotal;
+                xml.Append("<SubTotal>");
+                xml.Append(subTotal.ToXMLFragment());
+                xml.Append("</SubTotal>");
+            } 
+            List<CartItem> cartItemList = this.CartItem;
+            foreach (CartItem cartItem in cartItemList) {
+                xml.Append("<CartItem>");
+                xml.Append(cartItem.ToXMLFragment());
+                xml.Append("</CartItem>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModify.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModify.cs
new file mode 100644
index 0000000..94f3911
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModify.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartModify
+    {
+    
+        private  List<CartModifyRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CartModifyRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CartModifyRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CartModify WithRequest(params CartModifyRequest[] list)
+        {
+            foreach (CartModifyRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CartModify");
+            List<CartModifyRequest> requestList = Request;
+            foreach (CartModifyRequest request in requestList) 
+            {
+                if (request.IsSetCartId()) 
+                {
+                    parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "CartId", request.CartId);
+                }
+                if (request.IsSetHMAC()) 
+                {
+                    parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "HMAC", request.HMAC);
+                }
+                if (request.IsSetMergeCart()) 
+                {
+                    parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "MergeCart", request.MergeCart);
+                }
+                if (request.IsSetItems()) 
+                {
+                    CartModifyItems  items = request.Items;
+                    List<CartModifyItem> itemList = items.Item;
+                    foreach (CartModifyItem item in itemList) 
+                    {
+                        if (item.IsSetAction()) 
+                        {
+                            parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "Action", item.Action.ToString());
+                        }
+                        if (item.IsSetCartItemId()) 
+                        {
+                            parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "CartItemId", item.CartItemId);
+                        }
+                        if (item.IsSetQuantity()) 
+                        {
+                            parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "Item" + "."  + (itemList.IndexOf(item) + 1) + "." + "Quantity", item.Quantity + "");
+                        }
+
+                    }
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CartModify" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItem.cs
new file mode 100644
index 0000000..bd5b1a7
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItem.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartModifyItem
+    {
+    
+        private String actionField;
+
+        private String cartItemIdField;
+
+        private Decimal? quantityField;
+
+
+        /// <summary>
+        /// Gets and sets the Action property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Action")]
+        public String Action
+        {
+            get { return this.actionField ; }
+            set { this.actionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Action property
+        /// </summary>
+        /// <param name="action">Action property</param>
+        /// <returns>this instance</returns>
+        public CartModifyItem WithAction(String action)
+        {
+            this.actionField = action;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Action property is set
+        /// </summary>
+        /// <returns>true if Action property is set</returns>
+        public Boolean IsSetAction()
+        {
+            return this.actionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CartItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartItemId")]
+        public String CartItemId
+        {
+            get { return this.cartItemIdField ; }
+            set { this.cartItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartItemId property
+        /// </summary>
+        /// <param name="cartItemId">CartItemId property</param>
+        /// <returns>this instance</returns>
+        public CartModifyItem WithCartItemId(String cartItemId)
+        {
+            this.cartItemIdField = cartItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartItemId property is set
+        /// </summary>
+        /// <returns>true if CartItemId property is set</returns>
+        public Boolean IsSetCartItemId()
+        {
+            return  this.cartItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public CartModifyItem WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAction()) {
+                xml.Append("<Action>");
+                xml.Append(this.Action);
+                xml.Append("</Action>");
+            }
+            if (IsSetCartItemId()) {
+                xml.Append("<CartItemId>");
+                xml.Append(EscapeXML(this.CartItemId));
+                xml.Append("</CartItemId>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItems.cs
new file mode 100644
index 0000000..eb26c3c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyItems.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartModifyItems
+    {
+    
+        private  List<CartModifyItem> itemField;
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public List<CartModifyItem> Item
+        {
+            get
+            {
+                if (this.itemField == null)
+                {
+                    this.itemField = new List<CartModifyItem>();
+                }
+                return this.itemField;
+            }
+            set { this.itemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="list">Item property</param>
+        /// <returns>this instance</returns>
+        public CartModifyItems WithItem(params CartModifyItem[] list)
+        {
+            foreach (CartModifyItem item in list)
+            {
+                Item.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return (Item.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<CartModifyItem> itemList = this.Item;
+            foreach (CartModifyItem item in itemList) {
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyRequest.cs
new file mode 100644
index 0000000..7528378
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyRequest.cs
@@ -0,0 +1,318 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartModifyRequest
+    {
+    
+        private String cartIdField;
+
+        private String HMACField;
+
+        private String mergeCartField;
+
+        private  CartModifyItems itemsField;
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the CartId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CartId")]
+        public String CartId
+        {
+            get { return this.cartIdField ; }
+            set { this.cartIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CartId property
+        /// </summary>
+        /// <param name="cartId">CartId property</param>
+        /// <returns>this instance</returns>
+        public CartModifyRequest WithCartId(String cartId)
+        {
+            this.cartIdField = cartId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CartId property is set
+        /// </summary>
+        /// <returns>true if CartId property is set</returns>
+        public Boolean IsSetCartId()
+        {
+            return  this.cartIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HMAC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HMAC")]
+        public String HMAC
+        {
+            get { return this.HMACField ; }
+            set { this.HMACField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HMAC property
+        /// </summary>
+        /// <param name="HMAC">HMAC property</param>
+        /// <returns>this instance</returns>
+        public CartModifyRequest WithHMAC(String HMAC)
+        {
+            this.HMACField = HMAC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HMAC property is set
+        /// </summary>
+        /// <returns>true if HMAC property is set</returns>
+        public Boolean IsSetHMAC()
+        {
+            return  this.HMACField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MergeCart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MergeCart")]
+        public String MergeCart
+        {
+            get { return this.mergeCartField ; }
+            set { this.mergeCartField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MergeCart property
+        /// </summary>
+        /// <param name="mergeCart">MergeCart property</param>
+        /// <returns>this instance</returns>
+        public CartModifyRequest WithMergeCart(String mergeCart)
+        {
+            this.mergeCartField = mergeCart;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MergeCart property is set
+        /// </summary>
+        /// <returns>true if MergeCart property is set</returns>
+        public Boolean IsSetMergeCart()
+        {
+            return  this.mergeCartField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public CartModifyItems Items
+        {
+            get { return this.itemsField ; }
+            set { this.itemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="items">Items property</param>
+        /// <returns>this instance</returns>
+        public CartModifyRequest WithItems(CartModifyItems items)
+        {
+            this.itemsField = items;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return this.itemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CartModifyRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCartId()) {
+                xml.Append("<CartId>");
+                xml.Append(EscapeXML(this.CartId));
+                xml.Append("</CartId>");
+            }
+            if (IsSetHMAC()) {
+                xml.Append("<HMAC>");
+                xml.Append(EscapeXML(this.HMAC));
+                xml.Append("</HMAC>");
+            }
+            if (IsSetMergeCart()) {
+                xml.Append("<MergeCart>");
+                xml.Append(EscapeXML(this.MergeCart));
+                xml.Append("</MergeCart>");
+            }
+            if (IsSetItems()) {
+                CartModifyItems  items = this.Items;
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            } 
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyResponse.cs
new file mode 100644
index 0000000..907994e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CartModifyResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CartModifyResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Cart> cartField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CartModifyResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Cart property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cart")]
+        public List<Cart> Cart
+        {
+            get
+            {
+                if (this.cartField == null)
+                {
+                    this.cartField = new List<Cart>();
+                }
+                return this.cartField;
+            }
+            set { this.cartField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cart property
+        /// </summary>
+        /// <param name="list">Cart property</param>
+        /// <returns>this instance</returns>
+        public CartModifyResponse WithCart(params Cart[] list)
+        {
+            foreach (Cart item in list)
+            {
+                Cart.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Cart property is set
+        /// </summary>
+        /// <returns>true if Cart property is set</returns>
+        public Boolean IsSetCart()
+        {
+            return (Cart.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CartModifyResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Cart> cartList = this.Cart;
+            foreach (Cart cart in cartList) {
+                xml.Append("<Cart>");
+                xml.Append(cart.ToXMLFragment());
+                xml.Append("</Cart>");
+            }
+            xml.Append("</CartModifyResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ChildTransactionItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ChildTransactionItems.cs
new file mode 100644
index 0000000..357b1d5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ChildTransactionItems.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ChildTransactionItems
+    {
+    
+        private  List<TransactionItem> transactionItemField;
+
+
+        /// <summary>
+        /// Gets and sets the TransactionItem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionItem")]
+        public List<TransactionItem> TransactionItem
+        {
+            get
+            {
+                if (this.transactionItemField == null)
+                {
+                    this.transactionItemField = new List<TransactionItem>();
+                }
+                return this.transactionItemField;
+            }
+            set { this.transactionItemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionItem property
+        /// </summary>
+        /// <param name="list">TransactionItem property</param>
+        /// <returns>this instance</returns>
+        public ChildTransactionItems WithTransactionItem(params TransactionItem[] list)
+        {
+            foreach (TransactionItem item in list)
+            {
+                TransactionItem.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if TransactionItem property is set
+        /// </summary>
+        /// <returns>true if TransactionItem property is set</returns>
+        public Boolean IsSetTransactionItem()
+        {
+            return (TransactionItem.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<TransactionItem> transactionItemList = this.TransactionItem;
+            foreach (TransactionItem transactionItem in transactionItemList) {
+                xml.Append("<TransactionItem>");
+                xml.Append(transactionItem.ToXMLFragment());
+                xml.Append("</TransactionItem>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionItem.cs
new file mode 100644
index 0000000..6bf3210
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionItem.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CollectionItem
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public CollectionItem WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public CollectionItem WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionParent.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionParent.cs
new file mode 100644
index 0000000..7f25d37
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionParent.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CollectionParent
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public CollectionParent WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public CollectionParent WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionSummary.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionSummary.cs
new file mode 100644
index 0000000..63dc8ac
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionSummary.cs
@@ -0,0 +1,266 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CollectionSummary
+    {
+    
+        private  Price lowestListPriceField;
+        private  Price highestListPriceField;
+        private  Price lowestSalePriceField;
+        private  Price highestSalePriceField;
+
+        /// <summary>
+        /// Gets and sets the LowestListPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestListPrice")]
+        public Price LowestListPrice
+        {
+            get { return this.lowestListPriceField ; }
+            set { this.lowestListPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestListPrice property
+        /// </summary>
+        /// <param name="lowestListPrice">LowestListPrice property</param>
+        /// <returns>this instance</returns>
+        public CollectionSummary WithLowestListPrice(Price lowestListPrice)
+        {
+            this.lowestListPriceField = lowestListPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestListPrice property is set
+        /// </summary>
+        /// <returns>true if LowestListPrice property is set</returns>
+        public Boolean IsSetLowestListPrice()
+        {
+            return this.lowestListPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HighestListPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HighestListPrice")]
+        public Price HighestListPrice
+        {
+            get { return this.highestListPriceField ; }
+            set { this.highestListPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HighestListPrice property
+        /// </summary>
+        /// <param name="highestListPrice">HighestListPrice property</param>
+        /// <returns>this instance</returns>
+        public CollectionSummary WithHighestListPrice(Price highestListPrice)
+        {
+            this.highestListPriceField = highestListPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HighestListPrice property is set
+        /// </summary>
+        /// <returns>true if HighestListPrice property is set</returns>
+        public Boolean IsSetHighestListPrice()
+        {
+            return this.highestListPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LowestSalePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestSalePrice")]
+        public Price LowestSalePrice
+        {
+            get { return this.lowestSalePriceField ; }
+            set { this.lowestSalePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestSalePrice property
+        /// </summary>
+        /// <param name="lowestSalePrice">LowestSalePrice property</param>
+        /// <returns>this instance</returns>
+        public CollectionSummary WithLowestSalePrice(Price lowestSalePrice)
+        {
+            this.lowestSalePriceField = lowestSalePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestSalePrice property is set
+        /// </summary>
+        /// <returns>true if LowestSalePrice property is set</returns>
+        public Boolean IsSetLowestSalePrice()
+        {
+            return this.lowestSalePriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HighestSalePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HighestSalePrice")]
+        public Price HighestSalePrice
+        {
+            get { return this.highestSalePriceField ; }
+            set { this.highestSalePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HighestSalePrice property
+        /// </summary>
+        /// <param name="highestSalePrice">HighestSalePrice property</param>
+        /// <returns>this instance</returns>
+        public CollectionSummary WithHighestSalePrice(Price highestSalePrice)
+        {
+            this.highestSalePriceField = highestSalePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HighestSalePrice property is set
+        /// </summary>
+        /// <returns>true if HighestSalePrice property is set</returns>
+        public Boolean IsSetHighestSalePrice()
+        {
+            return this.highestSalePriceField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetLowestListPrice()) {
+                Price  lowestListPrice = this.LowestListPrice;
+                xml.Append("<LowestListPrice>");
+                xml.Append(lowestListPrice.ToXMLFragment());
+                xml.Append("</LowestListPrice>");
+            } 
+            if (IsSetHighestListPrice()) {
+                Price  highestListPrice = this.HighestListPrice;
+                xml.Append("<HighestListPrice>");
+                xml.Append(highestListPrice.ToXMLFragment());
+                xml.Append("</HighestListPrice>");
+            } 
+            if (IsSetLowestSalePrice()) {
+                Price  lowestSalePrice = this.LowestSalePrice;
+                xml.Append("<LowestSalePrice>");
+                xml.Append(lowestSalePrice.ToXMLFragment());
+                xml.Append("</LowestSalePrice>");
+            } 
+            if (IsSetHighestSalePrice()) {
+                Price  highestSalePrice = this.HighestSalePrice;
+                xml.Append("<HighestSalePrice>");
+                xml.Append(highestSalePrice.ToXMLFragment());
+                xml.Append("</HighestSalePrice>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Collections.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Collections.cs
new file mode 100644
index 0000000..bcffbea
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Collections.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Collections
+    {
+    
+        private  List<CollectionsCollection> collectionField;
+
+
+        /// <summary>
+        /// Gets and sets the Collection property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Collection")]
+        public List<CollectionsCollection> Collection
+        {
+            get
+            {
+                if (this.collectionField == null)
+                {
+                    this.collectionField = new List<CollectionsCollection>();
+                }
+                return this.collectionField;
+            }
+            set { this.collectionField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Collection property
+        /// </summary>
+        /// <param name="list">Collection property</param>
+        /// <returns>this instance</returns>
+        public Collections WithCollection(params CollectionsCollection[] list)
+        {
+            foreach (CollectionsCollection item in list)
+            {
+                Collection.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Collection property is set
+        /// </summary>
+        /// <returns>true if Collection property is set</returns>
+        public Boolean IsSetCollection()
+        {
+            return (Collection.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<CollectionsCollection> collectionList = this.Collection;
+            foreach (CollectionsCollection collection in collectionList) {
+                xml.Append("<Collection>");
+                xml.Append(collection.ToXMLFragment());
+                xml.Append("</Collection>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionsCollection.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionsCollection.cs
new file mode 100644
index 0000000..fb37843
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CollectionsCollection.cs
@@ -0,0 +1,231 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CollectionsCollection
+    {
+    
+        private  CollectionSummary collectionSummaryField;
+        private  CollectionParent collectionParentField;
+        private  List<CollectionItem> collectionItemField;
+
+
+        /// <summary>
+        /// Gets and sets the CollectionSummary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CollectionSummary")]
+        public CollectionSummary CollectionSummary
+        {
+            get { return this.collectionSummaryField ; }
+            set { this.collectionSummaryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CollectionSummary property
+        /// </summary>
+        /// <param name="collectionSummary">CollectionSummary property</param>
+        /// <returns>this instance</returns>
+        public CollectionsCollection WithCollectionSummary(CollectionSummary collectionSummary)
+        {
+            this.collectionSummaryField = collectionSummary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CollectionSummary property is set
+        /// </summary>
+        /// <returns>true if CollectionSummary property is set</returns>
+        public Boolean IsSetCollectionSummary()
+        {
+            return this.collectionSummaryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CollectionParent property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CollectionParent")]
+        public CollectionParent CollectionParent
+        {
+            get { return this.collectionParentField ; }
+            set { this.collectionParentField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CollectionParent property
+        /// </summary>
+        /// <param name="collectionParent">CollectionParent property</param>
+        /// <returns>this instance</returns>
+        public CollectionsCollection WithCollectionParent(CollectionParent collectionParent)
+        {
+            this.collectionParentField = collectionParent;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CollectionParent property is set
+        /// </summary>
+        /// <returns>true if CollectionParent property is set</returns>
+        public Boolean IsSetCollectionParent()
+        {
+            return this.collectionParentField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CollectionItem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CollectionItem")]
+        public List<CollectionItem> CollectionItem
+        {
+            get
+            {
+                if (this.collectionItemField == null)
+                {
+                    this.collectionItemField = new List<CollectionItem>();
+                }
+                return this.collectionItemField;
+            }
+            set { this.collectionItemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CollectionItem property
+        /// </summary>
+        /// <param name="list">CollectionItem property</param>
+        /// <returns>this instance</returns>
+        public CollectionsCollection WithCollectionItem(params CollectionItem[] list)
+        {
+            foreach (CollectionItem item in list)
+            {
+                CollectionItem.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if CollectionItem property is set
+        /// </summary>
+        /// <returns>true if CollectionItem property is set</returns>
+        public Boolean IsSetCollectionItem()
+        {
+            return (CollectionItem.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCollectionSummary()) {
+                CollectionSummary  collectionSummary = this.CollectionSummary;
+                xml.Append("<CollectionSummary>");
+                xml.Append(collectionSummary.ToXMLFragment());
+                xml.Append("</CollectionSummary>");
+            } 
+            if (IsSetCollectionParent()) {
+                CollectionParent  collectionParent = this.CollectionParent;
+                xml.Append("<CollectionParent>");
+                xml.Append(collectionParent.ToXMLFragment());
+                xml.Append("</CollectionParent>");
+            } 
+            List<CollectionItem> collectionItemList = this.CollectionItem;
+            foreach (CollectionItem collectionItem in collectionItemList) {
+                xml.Append("<CollectionItem>");
+                xml.Append(collectionItem.ToXMLFragment());
+                xml.Append("</CollectionItem>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Condition.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Condition.cs
new file mode 100644
index 0000000..87d8581
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Condition.cs
@@ -0,0 +1,48 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public enum Condition
+    {
+    All,
+            
+            New,
+            
+            Used,
+            
+            Collectible,
+            
+            Refurbished,
+            
+        
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CorrectedQuery.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CorrectedQuery.cs
new file mode 100644
index 0000000..dcf94a2
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CorrectedQuery.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CorrectedQuery
+    {
+    
+        private String keywordsField;
+
+        private String messageField;
+
+
+        /// <summary>
+        /// Gets and sets the Keywords property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Keywords")]
+        public String Keywords
+        {
+            get { return this.keywordsField ; }
+            set { this.keywordsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Keywords property
+        /// </summary>
+        /// <param name="keywords">Keywords property</param>
+        /// <returns>this instance</returns>
+        public CorrectedQuery WithKeywords(String keywords)
+        {
+            this.keywordsField = keywords;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Keywords property is set
+        /// </summary>
+        /// <returns>true if Keywords property is set</returns>
+        public Boolean IsSetKeywords()
+        {
+            return  this.keywordsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Message property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Message")]
+        public String Message
+        {
+            get { return this.messageField ; }
+            set { this.messageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Message property
+        /// </summary>
+        /// <param name="message">Message property</param>
+        /// <returns>this instance</returns>
+        public CorrectedQuery WithMessage(String message)
+        {
+            this.messageField = message;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Message property is set
+        /// </summary>
+        /// <returns>true if Message property is set</returns>
+        public Boolean IsSetMessage()
+        {
+            return  this.messageField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetKeywords()) {
+                xml.Append("<Keywords>");
+                xml.Append(EscapeXML(this.Keywords));
+                xml.Append("</Keywords>");
+            }
+            if (IsSetMessage()) {
+                xml.Append("<Message>");
+                xml.Append(EscapeXML(this.Message));
+                xml.Append("</Message>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Creator.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Creator.cs
new file mode 100644
index 0000000..30904bf
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Creator.cs
@@ -0,0 +1,165 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Creator
+    {
+    
+        private  String roleField;
+        private  String valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Role property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Role")]
+        public String Role
+        {
+            get { return this.roleField ; }
+            set { this.roleField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Role property
+        /// </summary>
+        /// <param name="role">Role property</param>
+        /// <returns>this instance</returns>
+        public Creator WithRole(String role)
+        {
+            this.roleField = role;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Role property is set
+        /// </summary>
+        /// <returns>true if Role property is set</returns>
+        public Boolean IsSetRole()
+        {
+            return this.roleField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlTextAttribute()]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public Creator WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return this.valueField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customer.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customer.cs
new file mode 100644
index 0000000..70f91a8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customer.cs
@@ -0,0 +1,403 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Customer
+    {
+    
+        private String customerIdField;
+
+        private String nicknameField;
+
+        private String birthdayField;
+
+        private String wishListIdField;
+
+        private  CustomerLocation locationField;
+        private  List<CustomerReviews> customerReviewsField;
+
+        private  Tags tagsField;
+
+        /// <summary>
+        /// Gets and sets the CustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerId")]
+        public String CustomerId
+        {
+            get { return this.customerIdField ; }
+            set { this.customerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerId property
+        /// </summary>
+        /// <param name="customerId">CustomerId property</param>
+        /// <returns>this instance</returns>
+        public Customer WithCustomerId(String customerId)
+        {
+            this.customerIdField = customerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerId property is set
+        /// </summary>
+        /// <returns>true if CustomerId property is set</returns>
+        public Boolean IsSetCustomerId()
+        {
+            return  this.customerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Nickname property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Nickname")]
+        public String Nickname
+        {
+            get { return this.nicknameField ; }
+            set { this.nicknameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Nickname property
+        /// </summary>
+        /// <param name="nickname">Nickname property</param>
+        /// <returns>this instance</returns>
+        public Customer WithNickname(String nickname)
+        {
+            this.nicknameField = nickname;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Nickname property is set
+        /// </summary>
+        /// <returns>true if Nickname property is set</returns>
+        public Boolean IsSetNickname()
+        {
+            return  this.nicknameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Birthday property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Birthday")]
+        public String Birthday
+        {
+            get { return this.birthdayField ; }
+            set { this.birthdayField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Birthday property
+        /// </summary>
+        /// <param name="birthday">Birthday property</param>
+        /// <returns>this instance</returns>
+        public Customer WithBirthday(String birthday)
+        {
+            this.birthdayField = birthday;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Birthday property is set
+        /// </summary>
+        /// <returns>true if Birthday property is set</returns>
+        public Boolean IsSetBirthday()
+        {
+            return  this.birthdayField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WishListId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WishListId")]
+        public String WishListId
+        {
+            get { return this.wishListIdField ; }
+            set { this.wishListIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WishListId property
+        /// </summary>
+        /// <param name="wishListId">WishListId property</param>
+        /// <returns>this instance</returns>
+        public Customer WithWishListId(String wishListId)
+        {
+            this.wishListIdField = wishListId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WishListId property is set
+        /// </summary>
+        /// <returns>true if WishListId property is set</returns>
+        public Boolean IsSetWishListId()
+        {
+            return  this.wishListIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Location property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Location")]
+        public CustomerLocation Location
+        {
+            get { return this.locationField ; }
+            set { this.locationField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Location property
+        /// </summary>
+        /// <param name="location">Location property</param>
+        /// <returns>this instance</returns>
+        public Customer WithLocation(CustomerLocation location)
+        {
+            this.locationField = location;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Location property is set
+        /// </summary>
+        /// <returns>true if Location property is set</returns>
+        public Boolean IsSetLocation()
+        {
+            return this.locationField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CustomerReviews property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerReviews")]
+        public List<CustomerReviews> CustomerReviews
+        {
+            get
+            {
+                if (this.customerReviewsField == null)
+                {
+                    this.customerReviewsField = new List<CustomerReviews>();
+                }
+                return this.customerReviewsField;
+            }
+            set { this.customerReviewsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerReviews property
+        /// </summary>
+        /// <param name="list">CustomerReviews property</param>
+        /// <returns>this instance</returns>
+        public Customer WithCustomerReviews(params CustomerReviews[] list)
+        {
+            foreach (CustomerReviews item in list)
+            {
+                CustomerReviews.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if CustomerReviews property is set
+        /// </summary>
+        /// <returns>true if CustomerReviews property is set</returns>
+        public Boolean IsSetCustomerReviews()
+        {
+            return (CustomerReviews.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Tags property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tags")]
+        public Tags Tags
+        {
+            get { return this.tagsField ; }
+            set { this.tagsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tags property
+        /// </summary>
+        /// <param name="tags">Tags property</param>
+        /// <returns>this instance</returns>
+        public Customer WithTags(Tags tags)
+        {
+            this.tagsField = tags;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Tags property is set
+        /// </summary>
+        /// <returns>true if Tags property is set</returns>
+        public Boolean IsSetTags()
+        {
+            return this.tagsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCustomerId()) {
+                xml.Append("<CustomerId>");
+                xml.Append(EscapeXML(this.CustomerId));
+                xml.Append("</CustomerId>");
+            }
+            if (IsSetNickname()) {
+                xml.Append("<Nickname>");
+                xml.Append(EscapeXML(this.Nickname));
+                xml.Append("</Nickname>");
+            }
+            if (IsSetBirthday()) {
+                xml.Append("<Birthday>");
+                xml.Append(EscapeXML(this.Birthday));
+                xml.Append("</Birthday>");
+            }
+            if (IsSetWishListId()) {
+                xml.Append("<WishListId>");
+                xml.Append(EscapeXML(this.WishListId));
+                xml.Append("</WishListId>");
+            }
+            if (IsSetLocation()) {
+                CustomerLocation  location = this.Location;
+                xml.Append("<Location>");
+                xml.Append(location.ToXMLFragment());
+                xml.Append("</Location>");
+            } 
+            List<CustomerReviews> customerReviewsList = this.CustomerReviews;
+            foreach (CustomerReviews customerReviews in customerReviewsList) {
+                xml.Append("<CustomerReviews>");
+                xml.Append(customerReviews.ToXMLFragment());
+                xml.Append("</CustomerReviews>");
+            }
+            if (IsSetTags()) {
+                Tags  tags = this.Tags;
+                xml.Append("<Tags>");
+                xml.Append(tags.ToXMLFragment());
+                xml.Append("</Tags>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookup.cs
new file mode 100644
index 0000000..11fbe7b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookup.cs
@@ -0,0 +1,130 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentLookup
+    {
+    
+        private  List<CustomerContentLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CustomerContentLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CustomerContentLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookup WithRequest(params CustomerContentLookupRequest[] list)
+        {
+            foreach (CustomerContentLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CustomerContentLookup");
+            List<CustomerContentLookupRequest> requestList = Request;
+            foreach (CustomerContentLookupRequest request in requestList) 
+            {
+                if (request.IsSetCustomerId()) 
+                {
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "CustomerId", request.CustomerId);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetReviewPage()) 
+                {
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewPage", request.ReviewPage + "");
+                }
+                if (request.IsSetTagPage()) 
+                {
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagPage", request.TagPage + "");
+                }
+                if (request.IsSetTagsPerPage()) 
+                {
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagsPerPage", request.TagsPerPage + "");
+                }
+                if (request.IsSetTagSort()) 
+                {
+                    parameters.Add("CustomerContentLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagSort", request.TagSort);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupRequest.cs
new file mode 100644
index 0000000..18731db
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupRequest.cs
@@ -0,0 +1,360 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentLookupRequest
+    {
+    
+        private String customerIdField;
+
+        private List<String> responseGroupField;
+
+        private Decimal? reviewPageField;
+
+        private Decimal? tagPageField;
+
+        private Decimal? tagsPerPageField;
+
+        private String tagSortField;
+
+
+        /// <summary>
+        /// Gets and sets the CustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerId")]
+        public String CustomerId
+        {
+            get { return this.customerIdField ; }
+            set { this.customerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerId property
+        /// </summary>
+        /// <param name="customerId">CustomerId property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithCustomerId(String customerId)
+        {
+            this.customerIdField = customerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerId property is set
+        /// </summary>
+        /// <returns>true if CustomerId property is set</returns>
+        public Boolean IsSetCustomerId()
+        {
+            return  this.customerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReviewPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewPage")]
+        public Decimal ReviewPage
+        {
+            get { return this.reviewPageField.GetValueOrDefault() ; }
+            set { this.reviewPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewPage property
+        /// </summary>
+        /// <param name="reviewPage">ReviewPage property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithReviewPage(Decimal reviewPage)
+        {
+            this.reviewPageField = reviewPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewPage property is set
+        /// </summary>
+        /// <returns>true if ReviewPage property is set</returns>
+        public Boolean IsSetReviewPage()
+        {
+            return  this.reviewPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagPage")]
+        public Decimal TagPage
+        {
+            get { return this.tagPageField.GetValueOrDefault() ; }
+            set { this.tagPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagPage property
+        /// </summary>
+        /// <param name="tagPage">TagPage property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithTagPage(Decimal tagPage)
+        {
+            this.tagPageField = tagPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagPage property is set
+        /// </summary>
+        /// <returns>true if TagPage property is set</returns>
+        public Boolean IsSetTagPage()
+        {
+            return  this.tagPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagsPerPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagsPerPage")]
+        public Decimal TagsPerPage
+        {
+            get { return this.tagsPerPageField.GetValueOrDefault() ; }
+            set { this.tagsPerPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagsPerPage property
+        /// </summary>
+        /// <param name="tagsPerPage">TagsPerPage property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithTagsPerPage(Decimal tagsPerPage)
+        {
+            this.tagsPerPageField = tagsPerPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagsPerPage property is set
+        /// </summary>
+        /// <returns>true if TagsPerPage property is set</returns>
+        public Boolean IsSetTagsPerPage()
+        {
+            return  this.tagsPerPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagSort")]
+        public String TagSort
+        {
+            get { return this.tagSortField ; }
+            set { this.tagSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagSort property
+        /// </summary>
+        /// <param name="tagSort">TagSort property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupRequest WithTagSort(String tagSort)
+        {
+            this.tagSortField = tagSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagSort property is set
+        /// </summary>
+        /// <returns>true if TagSort property is set</returns>
+        public Boolean IsSetTagSort()
+        {
+            return  this.tagSortField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCustomerId()) {
+                xml.Append("<CustomerId>");
+                xml.Append(EscapeXML(this.CustomerId));
+                xml.Append("</CustomerId>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetReviewPage()) {
+                xml.Append("<ReviewPage>");
+                xml.Append(this.ReviewPage);
+                xml.Append("</ReviewPage>");
+            }
+            if (IsSetTagPage()) {
+                xml.Append("<TagPage>");
+                xml.Append(this.TagPage);
+                xml.Append("</TagPage>");
+            }
+            if (IsSetTagsPerPage()) {
+                xml.Append("<TagsPerPage>");
+                xml.Append(this.TagsPerPage);
+                xml.Append("</TagsPerPage>");
+            }
+            if (IsSetTagSort()) {
+                xml.Append("<TagSort>");
+                xml.Append(EscapeXML(this.TagSort));
+                xml.Append("</TagSort>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupResponse.cs
new file mode 100644
index 0000000..165a2ff
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Customers> customersField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Customers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Customers")]
+        public List<Customers> Customers
+        {
+            get
+            {
+                if (this.customersField == null)
+                {
+                    this.customersField = new List<Customers>();
+                }
+                return this.customersField;
+            }
+            set { this.customersField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Customers property
+        /// </summary>
+        /// <param name="list">Customers property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentLookupResponse WithCustomers(params Customers[] list)
+        {
+            foreach (Customers item in list)
+            {
+                Customers.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Customers property is set
+        /// </summary>
+        /// <returns>true if Customers property is set</returns>
+        public Boolean IsSetCustomers()
+        {
+            return (Customers.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CustomerContentLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Customers> customersList = this.Customers;
+            foreach (Customers customers in customersList) {
+                xml.Append("<Customers>");
+                xml.Append(customers.ToXMLFragment());
+                xml.Append("</Customers>");
+            }
+            xml.Append("</CustomerContentLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearch.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearch.cs
new file mode 100644
index 0000000..1e92b05
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearch.cs
@@ -0,0 +1,122 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentSearch
+    {
+    
+        private  List<CustomerContentSearchRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<CustomerContentSearchRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<CustomerContentSearchRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearch WithRequest(params CustomerContentSearchRequest[] list)
+        {
+            foreach (CustomerContentSearchRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "CustomerContentSearch");
+            List<CustomerContentSearchRequest> requestList = Request;
+            foreach (CustomerContentSearchRequest request in requestList) 
+            {
+                if (request.IsSetCustomerPage()) 
+                {
+                    parameters.Add("CustomerContentSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "CustomerPage", request.CustomerPage + "");
+                }
+                if (request.IsSetEmail()) 
+                {
+                    parameters.Add("CustomerContentSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Email", request.Email);
+                }
+                if (request.IsSetName()) 
+                {
+                    parameters.Add("CustomerContentSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Name", request.Name);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("CustomerContentSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchRequest.cs
new file mode 100644
index 0000000..f4f45ac
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchRequest.cs
@@ -0,0 +1,274 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentSearchRequest
+    {
+    
+        private Decimal? customerPageField;
+
+        private String emailField;
+
+        private String nameField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the CustomerPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerPage")]
+        public Decimal CustomerPage
+        {
+            get { return this.customerPageField.GetValueOrDefault() ; }
+            set { this.customerPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerPage property
+        /// </summary>
+        /// <param name="customerPage">CustomerPage property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchRequest WithCustomerPage(Decimal customerPage)
+        {
+            this.customerPageField = customerPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerPage property is set
+        /// </summary>
+        /// <returns>true if CustomerPage property is set</returns>
+        public Boolean IsSetCustomerPage()
+        {
+            return  this.customerPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Email property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Email")]
+        public String Email
+        {
+            get { return this.emailField ; }
+            set { this.emailField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Email property
+        /// </summary>
+        /// <param name="email">Email property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchRequest WithEmail(String email)
+        {
+            this.emailField = email;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Email property is set
+        /// </summary>
+        /// <returns>true if Email property is set</returns>
+        public Boolean IsSetEmail()
+        {
+            return  this.emailField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchRequest WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCustomerPage()) {
+                xml.Append("<CustomerPage>");
+                xml.Append(this.CustomerPage);
+                xml.Append("</CustomerPage>");
+            }
+            if (IsSetEmail()) {
+                xml.Append("<Email>");
+                xml.Append(EscapeXML(this.Email));
+                xml.Append("</Email>");
+            }
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchResponse.cs
new file mode 100644
index 0000000..8815a99
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerContentSearchResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerContentSearchResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Customers> customersField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Customers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Customers")]
+        public List<Customers> Customers
+        {
+            get
+            {
+                if (this.customersField == null)
+                {
+                    this.customersField = new List<Customers>();
+                }
+                return this.customersField;
+            }
+            set { this.customersField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Customers property
+        /// </summary>
+        /// <param name="list">Customers property</param>
+        /// <returns>this instance</returns>
+        public CustomerContentSearchResponse WithCustomers(params Customers[] list)
+        {
+            foreach (Customers item in list)
+            {
+                Customers.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Customers property is set
+        /// </summary>
+        /// <returns>true if Customers property is set</returns>
+        public Boolean IsSetCustomers()
+        {
+            return (Customers.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<CustomerContentSearchResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Customers> customersList = this.Customers;
+            foreach (Customers customers in customersList) {
+                xml.Append("<Customers>");
+                xml.Append(customers.ToXMLFragment());
+                xml.Append("</Customers>");
+            }
+            xml.Append("</CustomerContentSearchResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerLocation.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerLocation.cs
new file mode 100644
index 0000000..44edd47
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerLocation.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerLocation
+    {
+    
+        private String userDefinedLocationField;
+
+        private String cityField;
+
+        private String stateField;
+
+        private String countryField;
+
+
+        /// <summary>
+        /// Gets and sets the UserDefinedLocation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UserDefinedLocation")]
+        public String UserDefinedLocation
+        {
+            get { return this.userDefinedLocationField ; }
+            set { this.userDefinedLocationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UserDefinedLocation property
+        /// </summary>
+        /// <param name="userDefinedLocation">UserDefinedLocation property</param>
+        /// <returns>this instance</returns>
+        public CustomerLocation WithUserDefinedLocation(String userDefinedLocation)
+        {
+            this.userDefinedLocationField = userDefinedLocation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UserDefinedLocation property is set
+        /// </summary>
+        /// <returns>true if UserDefinedLocation property is set</returns>
+        public Boolean IsSetUserDefinedLocation()
+        {
+            return  this.userDefinedLocationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the City property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "City")]
+        public String City
+        {
+            get { return this.cityField ; }
+            set { this.cityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the City property
+        /// </summary>
+        /// <param name="city">City property</param>
+        /// <returns>this instance</returns>
+        public CustomerLocation WithCity(String city)
+        {
+            this.cityField = city;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if City property is set
+        /// </summary>
+        /// <returns>true if City property is set</returns>
+        public Boolean IsSetCity()
+        {
+            return  this.cityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the State property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "State")]
+        public String State
+        {
+            get { return this.stateField ; }
+            set { this.stateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the State property
+        /// </summary>
+        /// <param name="state">State property</param>
+        /// <returns>this instance</returns>
+        public CustomerLocation WithState(String state)
+        {
+            this.stateField = state;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if State property is set
+        /// </summary>
+        /// <returns>true if State property is set</returns>
+        public Boolean IsSetState()
+        {
+            return  this.stateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Country property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Country")]
+        public String Country
+        {
+            get { return this.countryField ; }
+            set { this.countryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Country property
+        /// </summary>
+        /// <param name="country">Country property</param>
+        /// <returns>this instance</returns>
+        public CustomerLocation WithCountry(String country)
+        {
+            this.countryField = country;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Country property is set
+        /// </summary>
+        /// <returns>true if Country property is set</returns>
+        public Boolean IsSetCountry()
+        {
+            return  this.countryField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetUserDefinedLocation()) {
+                xml.Append("<UserDefinedLocation>");
+                xml.Append(EscapeXML(this.UserDefinedLocation));
+                xml.Append("</UserDefinedLocation>");
+            }
+            if (IsSetCity()) {
+                xml.Append("<City>");
+                xml.Append(EscapeXML(this.City));
+                xml.Append("</City>");
+            }
+            if (IsSetState()) {
+                xml.Append("<State>");
+                xml.Append(EscapeXML(this.State));
+                xml.Append("</State>");
+            }
+            if (IsSetCountry()) {
+                xml.Append("<Country>");
+                xml.Append(EscapeXML(this.Country));
+                xml.Append("</Country>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerReviews.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerReviews.cs
new file mode 100644
index 0000000..b17b778
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/CustomerReviews.cs
@@ -0,0 +1,272 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class CustomerReviews
+    {
+    
+        private Decimal? averageRatingField;
+
+        private Decimal? totalReviewsField;
+
+        private Decimal? totalReviewPagesField;
+
+        private  List<Review> reviewField;
+
+
+        /// <summary>
+        /// Gets and sets the AverageRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AverageRating")]
+        public Decimal AverageRating
+        {
+            get { return this.averageRatingField.GetValueOrDefault() ; }
+            set { this.averageRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AverageRating property
+        /// </summary>
+        /// <param name="averageRating">AverageRating property</param>
+        /// <returns>this instance</returns>
+        public CustomerReviews WithAverageRating(Decimal averageRating)
+        {
+            this.averageRatingField = averageRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AverageRating property is set
+        /// </summary>
+        /// <returns>true if AverageRating property is set</returns>
+        public Boolean IsSetAverageRating()
+        {
+            return  this.averageRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalReviews property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalReviews")]
+        public Decimal TotalReviews
+        {
+            get { return this.totalReviewsField.GetValueOrDefault() ; }
+            set { this.totalReviewsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalReviews property
+        /// </summary>
+        /// <param name="totalReviews">TotalReviews property</param>
+        /// <returns>this instance</returns>
+        public CustomerReviews WithTotalReviews(Decimal totalReviews)
+        {
+            this.totalReviewsField = totalReviews;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalReviews property is set
+        /// </summary>
+        /// <returns>true if TotalReviews property is set</returns>
+        public Boolean IsSetTotalReviews()
+        {
+            return  this.totalReviewsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalReviewPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalReviewPages")]
+        public Decimal TotalReviewPages
+        {
+            get { return this.totalReviewPagesField.GetValueOrDefault() ; }
+            set { this.totalReviewPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalReviewPages property
+        /// </summary>
+        /// <param name="totalReviewPages">TotalReviewPages property</param>
+        /// <returns>this instance</returns>
+        public CustomerReviews WithTotalReviewPages(Decimal totalReviewPages)
+        {
+            this.totalReviewPagesField = totalReviewPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalReviewPages property is set
+        /// </summary>
+        /// <returns>true if TotalReviewPages property is set</returns>
+        public Boolean IsSetTotalReviewPages()
+        {
+            return  this.totalReviewPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Review property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Review")]
+        public List<Review> Review
+        {
+            get
+            {
+                if (this.reviewField == null)
+                {
+                    this.reviewField = new List<Review>();
+                }
+                return this.reviewField;
+            }
+            set { this.reviewField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Review property
+        /// </summary>
+        /// <param name="list">Review property</param>
+        /// <returns>this instance</returns>
+        public CustomerReviews WithReview(params Review[] list)
+        {
+            foreach (Review item in list)
+            {
+                Review.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Review property is set
+        /// </summary>
+        /// <returns>true if Review property is set</returns>
+        public Boolean IsSetReview()
+        {
+            return (Review.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAverageRating()) {
+                xml.Append("<AverageRating>");
+                xml.Append(this.AverageRating);
+                xml.Append("</AverageRating>");
+            }
+            if (IsSetTotalReviews()) {
+                xml.Append("<TotalReviews>");
+                xml.Append(this.TotalReviews);
+                xml.Append("</TotalReviews>");
+            }
+            if (IsSetTotalReviewPages()) {
+                xml.Append("<TotalReviewPages>");
+                xml.Append(this.TotalReviewPages);
+                xml.Append("</TotalReviewPages>");
+            }
+            List<Review> reviewList = this.Review;
+            foreach (Review review in reviewList) {
+                xml.Append("<Review>");
+                xml.Append(review.ToXMLFragment());
+                xml.Append("</Review>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customers.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customers.cs
new file mode 100644
index 0000000..3bf1742
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Customers.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Customers
+    {
+    
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  List<Customer> customerField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public Customers WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public Customers WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Customer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Customer")]
+        public List<Customer> Customer
+        {
+            get
+            {
+                if (this.customerField == null)
+                {
+                    this.customerField = new List<Customer>();
+                }
+                return this.customerField;
+            }
+            set { this.customerField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Customer property
+        /// </summary>
+        /// <param name="list">Customer property</param>
+        /// <returns>this instance</returns>
+        public Customers WithCustomer(params Customer[] list)
+        {
+            foreach (Customer item in list)
+            {
+                Customer.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Customer property is set
+        /// </summary>
+        /// <returns>true if Customer property is set</returns>
+        public Boolean IsSetCustomer()
+        {
+            return (Customer.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            List<Customer> customerList = this.Customer;
+            foreach (Customer customer in customerList) {
+                xml.Append("<Customer>");
+                xml.Append(customer.ToXMLFragment());
+                xml.Append("</Customer>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DecimalWithUnits.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DecimalWithUnits.cs
new file mode 100644
index 0000000..97b3c2c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DecimalWithUnits.cs
@@ -0,0 +1,165 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class DecimalWithUnits
+    {
+    
+        private  String unitsField;
+        private  Decimal valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Units property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Units")]
+        public String Units
+        {
+            get { return this.unitsField ; }
+            set { this.unitsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Units property
+        /// </summary>
+        /// <param name="units">Units property</param>
+        /// <returns>this instance</returns>
+        public DecimalWithUnits WithUnits(String units)
+        {
+            this.unitsField = units;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Units property is set
+        /// </summary>
+        /// <returns>true if Units property is set</returns>
+        public Boolean IsSetUnits()
+        {
+            return this.unitsField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlTextAttribute()]
+        public Decimal Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public DecimalWithUnits WithValue(Decimal value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return true;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DefaultResponseGroups.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DefaultResponseGroups.cs
new file mode 100644
index 0000000..836589e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DefaultResponseGroups.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class DefaultResponseGroups
+    {
+    
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public DefaultResponseGroups WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(EscapeXML(responseGroup));
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DeliveryMethod.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DeliveryMethod.cs
new file mode 100644
index 0000000..d4d9b78
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/DeliveryMethod.cs
@@ -0,0 +1,42 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public enum DeliveryMethod
+    {
+    Ship,
+            
+            ISPU,
+            
+        
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Disc.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Disc.cs
new file mode 100644
index 0000000..9eacd81
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Disc.cs
@@ -0,0 +1,180 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Disc
+    {
+    
+        private  String numberField;
+        private  List<Track> trackField;
+
+
+        /// <summary>
+        /// Gets and sets the Track property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Track")]
+        public List<Track> Track
+        {
+            get
+            {
+                if (this.trackField == null)
+                {
+                    this.trackField = new List<Track>();
+                }
+                return this.trackField;
+            }
+            set { this.trackField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Track property
+        /// </summary>
+        /// <param name="list">Track property</param>
+        /// <returns>this instance</returns>
+        public Disc WithTrack(params Track[] list)
+        {
+            foreach (Track item in list)
+            {
+                Track.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Track property is set
+        /// </summary>
+        /// <returns>true if Track property is set</returns>
+        public Boolean IsSetTrack()
+        {
+            return (Track.Count > 0);
+        }
+
+
+
+        /// <summary>
+        /// Gets and sets  the Number property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Number")]
+        public String Number
+        {
+            get { return this.numberField ; }
+            set { this.numberField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Number property
+        /// </summary>
+        /// <param name="number">Number property</param>
+        /// <returns>this instance</returns>
+        public Disc WithNumber(String number)
+        {
+            this.numberField = number;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Number property is set
+        /// </summary>
+        /// <returns>true if Number property is set</returns>
+        public Boolean IsSetNumber()
+        {
+            return this.numberField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Track> trackList = this.Track;
+            foreach (Track track in trackList) {
+                xml.Append("<Track Number=" + "\"" +  track.Number  + "\"" +  ">");
+                xml.Append(EscapeXML(track.Value));
+                xml.Append("</Track>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReview.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReview.cs
new file mode 100644
index 0000000..47fa8e1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReview.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class EditorialReview
+    {
+    
+        private String sourceField;
+
+        private String contentField;
+
+        private Boolean? isLinkSuppressedField;
+
+
+        /// <summary>
+        /// Gets and sets the Source property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Source")]
+        public String Source
+        {
+            get { return this.sourceField ; }
+            set { this.sourceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Source property
+        /// </summary>
+        /// <param name="source">Source property</param>
+        /// <returns>this instance</returns>
+        public EditorialReview WithSource(String source)
+        {
+            this.sourceField = source;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Source property is set
+        /// </summary>
+        /// <returns>true if Source property is set</returns>
+        public Boolean IsSetSource()
+        {
+            return  this.sourceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Content property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Content")]
+        public String Content
+        {
+            get { return this.contentField ; }
+            set { this.contentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Content property
+        /// </summary>
+        /// <param name="content">Content property</param>
+        /// <returns>this instance</returns>
+        public EditorialReview WithContent(String content)
+        {
+            this.contentField = content;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Content property is set
+        /// </summary>
+        /// <returns>true if Content property is set</returns>
+        public Boolean IsSetContent()
+        {
+            return  this.contentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsLinkSuppressed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsLinkSuppressed")]
+        public Boolean IsLinkSuppressed
+        {
+            get { return this.isLinkSuppressedField.GetValueOrDefault() ; }
+            set { this.isLinkSuppressedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsLinkSuppressed property
+        /// </summary>
+        /// <param name="isLinkSuppressed">IsLinkSuppressed property</param>
+        /// <returns>this instance</returns>
+        public EditorialReview WithIsLinkSuppressed(Boolean isLinkSuppressed)
+        {
+            this.isLinkSuppressedField = isLinkSuppressed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsLinkSuppressed property is set
+        /// </summary>
+        /// <returns>true if IsLinkSuppressed property is set</returns>
+        public Boolean IsSetIsLinkSuppressed()
+        {
+            return  this.isLinkSuppressedField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSource()) {
+                xml.Append("<Source>");
+                xml.Append(EscapeXML(this.Source));
+                xml.Append("</Source>");
+            }
+            if (IsSetContent()) {
+                xml.Append("<Content>");
+                xml.Append(EscapeXML(this.Content));
+                xml.Append("</Content>");
+            }
+            if (IsSetIsLinkSuppressed()) {
+                xml.Append("<IsLinkSuppressed>");
+                xml.Append(this.IsLinkSuppressed);
+                xml.Append("</IsLinkSuppressed>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReviews.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReviews.cs
new file mode 100644
index 0000000..7c7063d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/EditorialReviews.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class EditorialReviews
+    {
+    
+        private  List<EditorialReview> editorialReviewField;
+
+
+        /// <summary>
+        /// Gets and sets the EditorialReview property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EditorialReview")]
+        public List<EditorialReview> EditorialReview
+        {
+            get
+            {
+                if (this.editorialReviewField == null)
+                {
+                    this.editorialReviewField = new List<EditorialReview>();
+                }
+                return this.editorialReviewField;
+            }
+            set { this.editorialReviewField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EditorialReview property
+        /// </summary>
+        /// <param name="list">EditorialReview property</param>
+        /// <returns>this instance</returns>
+        public EditorialReviews WithEditorialReview(params EditorialReview[] list)
+        {
+            foreach (EditorialReview item in list)
+            {
+                EditorialReview.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if EditorialReview property is set
+        /// </summary>
+        /// <returns>true if EditorialReview property is set</returns>
+        public Boolean IsSetEditorialReview()
+        {
+            return (EditorialReview.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<EditorialReview> editorialReviewList = this.EditorialReview;
+            foreach (EditorialReview editorialReview in editorialReviewList) {
+                xml.Append("<EditorialReview>");
+                xml.Append(editorialReview.ToXMLFragment());
+                xml.Append("</EditorialReview>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Feedback.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Feedback.cs
new file mode 100644
index 0000000..50e1eea
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Feedback.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Feedback
+    {
+    
+        private Decimal? ratingField;
+
+        private String commentField;
+
+        private String dateField;
+
+        private String ratedByField;
+
+
+        /// <summary>
+        /// Gets and sets the Rating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Rating")]
+        public Decimal Rating
+        {
+            get { return this.ratingField.GetValueOrDefault() ; }
+            set { this.ratingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Rating property
+        /// </summary>
+        /// <param name="rating">Rating property</param>
+        /// <returns>this instance</returns>
+        public Feedback WithRating(Decimal rating)
+        {
+            this.ratingField = rating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Rating property is set
+        /// </summary>
+        /// <returns>true if Rating property is set</returns>
+        public Boolean IsSetRating()
+        {
+            return  this.ratingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Comment property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Comment")]
+        public String Comment
+        {
+            get { return this.commentField ; }
+            set { this.commentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Comment property
+        /// </summary>
+        /// <param name="comment">Comment property</param>
+        /// <returns>this instance</returns>
+        public Feedback WithComment(String comment)
+        {
+            this.commentField = comment;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Comment property is set
+        /// </summary>
+        /// <returns>true if Comment property is set</returns>
+        public Boolean IsSetComment()
+        {
+            return  this.commentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Date property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Date")]
+        public String Date
+        {
+            get { return this.dateField ; }
+            set { this.dateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Date property
+        /// </summary>
+        /// <param name="date">Date property</param>
+        /// <returns>this instance</returns>
+        public Feedback WithDate(String date)
+        {
+            this.dateField = date;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Date property is set
+        /// </summary>
+        /// <returns>true if Date property is set</returns>
+        public Boolean IsSetDate()
+        {
+            return  this.dateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RatedBy property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RatedBy")]
+        public String RatedBy
+        {
+            get { return this.ratedByField ; }
+            set { this.ratedByField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RatedBy property
+        /// </summary>
+        /// <param name="ratedBy">RatedBy property</param>
+        /// <returns>this instance</returns>
+        public Feedback WithRatedBy(String ratedBy)
+        {
+            this.ratedByField = ratedBy;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RatedBy property is set
+        /// </summary>
+        /// <returns>true if RatedBy property is set</returns>
+        public Boolean IsSetRatedBy()
+        {
+            return  this.ratedByField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetRating()) {
+                xml.Append("<Rating>");
+                xml.Append(this.Rating);
+                xml.Append("</Rating>");
+            }
+            if (IsSetComment()) {
+                xml.Append("<Comment>");
+                xml.Append(EscapeXML(this.Comment));
+                xml.Append("</Comment>");
+            }
+            if (IsSetDate()) {
+                xml.Append("<Date>");
+                xml.Append(EscapeXML(this.Date));
+                xml.Append("</Date>");
+            }
+            if (IsSetRatedBy()) {
+                xml.Append("<RatedBy>");
+                xml.Append(EscapeXML(this.RatedBy));
+                xml.Append("</RatedBy>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/FeedbackDateRange.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/FeedbackDateRange.cs
new file mode 100644
index 0000000..b23fe9c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/FeedbackDateRange.cs
@@ -0,0 +1,180 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class FeedbackDateRange
+    {
+    
+        private  String periodField;
+        private  List<SellerFeedbackRating> sellerFeedbackRatingField;
+
+
+        /// <summary>
+        /// Gets and sets the SellerFeedbackRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerFeedbackRating")]
+        public List<SellerFeedbackRating> SellerFeedbackRating
+        {
+            get
+            {
+                if (this.sellerFeedbackRatingField == null)
+                {
+                    this.sellerFeedbackRatingField = new List<SellerFeedbackRating>();
+                }
+                return this.sellerFeedbackRatingField;
+            }
+            set { this.sellerFeedbackRatingField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerFeedbackRating property
+        /// </summary>
+        /// <param name="list">SellerFeedbackRating property</param>
+        /// <returns>this instance</returns>
+        public FeedbackDateRange WithSellerFeedbackRating(params SellerFeedbackRating[] list)
+        {
+            foreach (SellerFeedbackRating item in list)
+            {
+                SellerFeedbackRating.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SellerFeedbackRating property is set
+        /// </summary>
+        /// <returns>true if SellerFeedbackRating property is set</returns>
+        public Boolean IsSetSellerFeedbackRating()
+        {
+            return (SellerFeedbackRating.Count > 0);
+        }
+
+
+
+        /// <summary>
+        /// Gets and sets  the Period property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Period")]
+        public String Period
+        {
+            get { return this.periodField ; }
+            set { this.periodField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Period property
+        /// </summary>
+        /// <param name="period">Period property</param>
+        /// <returns>this instance</returns>
+        public FeedbackDateRange WithPeriod(String period)
+        {
+            this.periodField = period;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Period property is set
+        /// </summary>
+        /// <returns>true if Period property is set</returns>
+        public Boolean IsSetPeriod()
+        {
+            return this.periodField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<SellerFeedbackRating> sellerFeedbackRatingList = this.SellerFeedbackRating;
+            foreach (SellerFeedbackRating sellerFeedbackRating in sellerFeedbackRatingList) {
+                xml.Append("<SellerFeedbackRating Type=" + "\"" +  EscapeXML(sellerFeedbackRating.Type)  + "\"" +  ">");
+                xml.Append(sellerFeedbackRating.ToXMLFragment());
+                xml.Append("</SellerFeedbackRating>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Guide.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Guide.cs
new file mode 100644
index 0000000..6bd6b3a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Guide.cs
@@ -0,0 +1,133 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Guide
+    {
+    
+        private String guideIdField;
+
+
+        /// <summary>
+        /// Gets and sets the GuideId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuideId")]
+        public String GuideId
+        {
+            get { return this.guideIdField ; }
+            set { this.guideIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuideId property
+        /// </summary>
+        /// <param name="guideId">GuideId property</param>
+        /// <returns>this instance</returns>
+        public Guide WithGuideId(String guideId)
+        {
+            this.guideIdField = guideId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuideId property is set
+        /// </summary>
+        /// <returns>true if GuideId property is set</returns>
+        public Boolean IsSetGuideId()
+        {
+            return  this.guideIdField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetGuideId()) {
+                xml.Append("<GuideId>");
+                xml.Append(EscapeXML(this.GuideId));
+                xml.Append("</GuideId>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HTTPHeaders.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HTTPHeaders.cs
new file mode 100644
index 0000000..d5781cd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HTTPHeaders.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class HTTPHeaders
+    {
+    
+        private  List<Header> headerField;
+
+
+        /// <summary>
+        /// Gets and sets the Header property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Header")]
+        public List<Header> Header
+        {
+            get
+            {
+                if (this.headerField == null)
+                {
+                    this.headerField = new List<Header>();
+                }
+                return this.headerField;
+            }
+            set { this.headerField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Header property
+        /// </summary>
+        /// <param name="list">Header property</param>
+        /// <returns>this instance</returns>
+        public HTTPHeaders WithHeader(params Header[] list)
+        {
+            foreach (Header item in list)
+            {
+                Header.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Header property is set
+        /// </summary>
+        /// <returns>true if Header property is set</returns>
+        public Boolean IsSetHeader()
+        {
+            return (Header.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Header> headerList = this.Header;
+            foreach (Header header in headerList) {
+                xml.Append("<Header Name=" + "\"" +  EscapeXML(header.Name)  + "\"" +  " Value=" + "\"" +  EscapeXML(header.Value)  + "\"" +  ">");
+                xml.Append(header.ToXMLFragment());
+                xml.Append("</Header>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Header.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Header.cs
new file mode 100644
index 0000000..0faf75c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Header.cs
@@ -0,0 +1,164 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Header
+    {
+    
+        private  String nameField;
+        private  String valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Name property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Header WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return this.nameField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Value")]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public Header WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return this.valueField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Help.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Help.cs
new file mode 100644
index 0000000..d62f4d7
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Help.cs
@@ -0,0 +1,118 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Help
+    {
+    
+        private  List<HelpRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<HelpRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<HelpRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public Help WithRequest(params HelpRequest[] list)
+        {
+            foreach (HelpRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "Help");
+            List<HelpRequest> requestList = Request;
+            foreach (HelpRequest request in requestList) 
+            {
+                if (request.IsSetAbout()) 
+                {
+                    parameters.Add("Help" + "."  + (requestList.IndexOf(request) + 1) + "." + "About", request.About);
+                }
+                if (request.IsSetHelpType()) 
+                {
+                    parameters.Add("Help" + "."  + (requestList.IndexOf(request) + 1) + "." + "HelpType", request.HelpType.ToString());
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("Help" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpRequest.cs
new file mode 100644
index 0000000..1492ab6
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpRequest.cs
@@ -0,0 +1,231 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class HelpRequest
+    {
+    
+        private String aboutField;
+
+        private String helpTypeField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the About property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "About")]
+        public String About
+        {
+            get { return this.aboutField ; }
+            set { this.aboutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the About property
+        /// </summary>
+        /// <param name="about">About property</param>
+        /// <returns>this instance</returns>
+        public HelpRequest WithAbout(String about)
+        {
+            this.aboutField = about;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if About property is set
+        /// </summary>
+        /// <returns>true if About property is set</returns>
+        public Boolean IsSetAbout()
+        {
+            return  this.aboutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HelpType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HelpType")]
+        public String HelpType
+        {
+            get { return this.helpTypeField ; }
+            set { this.helpTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HelpType property
+        /// </summary>
+        /// <param name="helpType">HelpType property</param>
+        /// <returns>this instance</returns>
+        public HelpRequest WithHelpType(String helpType)
+        {
+            this.helpTypeField = helpType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HelpType property is set
+        /// </summary>
+        /// <returns>true if HelpType property is set</returns>
+        public Boolean IsSetHelpType()
+        {
+            return this.helpTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public HelpRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAbout()) {
+                xml.Append("<About>");
+                xml.Append(EscapeXML(this.About));
+                xml.Append("</About>");
+            }
+            if (IsSetHelpType()) {
+                xml.Append("<HelpType>");
+                xml.Append(this.HelpType);
+                xml.Append("</HelpType>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpResponse.cs
new file mode 100644
index 0000000..7cd5f40
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/HelpResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class HelpResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Information> informationField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public HelpResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Information property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Information")]
+        public List<Information> Information
+        {
+            get
+            {
+                if (this.informationField == null)
+                {
+                    this.informationField = new List<Information>();
+                }
+                return this.informationField;
+            }
+            set { this.informationField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Information property
+        /// </summary>
+        /// <param name="list">Information property</param>
+        /// <returns>this instance</returns>
+        public HelpResponse WithInformation(params Information[] list)
+        {
+            foreach (Information item in list)
+            {
+                Information.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Information property is set
+        /// </summary>
+        /// <returns>true if Information property is set</returns>
+        public Boolean IsSetInformation()
+        {
+            return (Information.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<HelpResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Information> informationList = this.Information;
+            foreach (Information information in informationList) {
+                xml.Append("<Information>");
+                xml.Append(information.ToXMLFragment());
+                xml.Append("</Information>");
+            }
+            xml.Append("</HelpResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Image.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Image.cs
new file mode 100644
index 0000000..6028570
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Image.cs
@@ -0,0 +1,264 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Image
+    {
+    
+        private String URLField;
+
+        private  DecimalWithUnits heightField;
+        private  DecimalWithUnits widthField;
+        private String isVerifiedField;
+
+
+        /// <summary>
+        /// Gets and sets the URL property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "URL")]
+        public String URL
+        {
+            get { return this.URLField ; }
+            set { this.URLField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the URL property
+        /// </summary>
+        /// <param name="URL">URL property</param>
+        /// <returns>this instance</returns>
+        public Image WithURL(String URL)
+        {
+            this.URLField = URL;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if URL property is set
+        /// </summary>
+        /// <returns>true if URL property is set</returns>
+        public Boolean IsSetURL()
+        {
+            return  this.URLField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Height property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Height")]
+        public DecimalWithUnits Height
+        {
+            get { return this.heightField ; }
+            set { this.heightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Height property
+        /// </summary>
+        /// <param name="height">Height property</param>
+        /// <returns>this instance</returns>
+        public Image WithHeight(DecimalWithUnits height)
+        {
+            this.heightField = height;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Height property is set
+        /// </summary>
+        /// <returns>true if Height property is set</returns>
+        public Boolean IsSetHeight()
+        {
+            return this.heightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Width property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Width")]
+        public DecimalWithUnits Width
+        {
+            get { return this.widthField ; }
+            set { this.widthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Width property
+        /// </summary>
+        /// <param name="width">Width property</param>
+        /// <returns>this instance</returns>
+        public Image WithWidth(DecimalWithUnits width)
+        {
+            this.widthField = width;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Width property is set
+        /// </summary>
+        /// <returns>true if Width property is set</returns>
+        public Boolean IsSetWidth()
+        {
+            return this.widthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the IsVerified property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsVerified")]
+        public String IsVerified
+        {
+            get { return this.isVerifiedField ; }
+            set { this.isVerifiedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsVerified property
+        /// </summary>
+        /// <param name="isVerified">IsVerified property</param>
+        /// <returns>this instance</returns>
+        public Image WithIsVerified(String isVerified)
+        {
+            this.isVerifiedField = isVerified;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsVerified property is set
+        /// </summary>
+        /// <returns>true if IsVerified property is set</returns>
+        public Boolean IsSetIsVerified()
+        {
+            return  this.isVerifiedField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetURL()) {
+                xml.Append("<URL>");
+                xml.Append(EscapeXML(this.URL));
+                xml.Append("</URL>");
+            }
+            if (IsSetHeight()) {
+                DecimalWithUnits  height = this.Height;
+                xml.Append("<Height Units=" + "\"" +  EscapeXML(height.Units)  + "\"" +  ">");
+                xml.Append(height.Value);
+                xml.Append("</Height>");
+            } 
+            if (IsSetWidth()) {
+                DecimalWithUnits  width = this.Width;
+                xml.Append("<Width Units=" + "\"" +  EscapeXML(width.Units)  + "\"" +  ">");
+                xml.Append(width.Value);
+                xml.Append("</Width>");
+            } 
+            if (IsSetIsVerified()) {
+                xml.Append("<IsVerified>");
+                xml.Append(EscapeXML(this.IsVerified));
+                xml.Append("</IsVerified>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSet.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSet.cs
new file mode 100644
index 0000000..203bca1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSet.cs
@@ -0,0 +1,391 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ImageSet
+    {
+    
+        private  String categoryField;
+        private  Image swatchImageField;
+        private  Image smallImageField;
+        private  Image thumbnailImageField;
+        private  Image tinyImageField;
+        private  Image mediumImageField;
+        private  Image largeImageField;
+
+        /// <summary>
+        /// Gets and sets the SwatchImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SwatchImage")]
+        public Image SwatchImage
+        {
+            get { return this.swatchImageField ; }
+            set { this.swatchImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SwatchImage property
+        /// </summary>
+        /// <param name="swatchImage">SwatchImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithSwatchImage(Image swatchImage)
+        {
+            this.swatchImageField = swatchImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SwatchImage property is set
+        /// </summary>
+        /// <returns>true if SwatchImage property is set</returns>
+        public Boolean IsSetSwatchImage()
+        {
+            return this.swatchImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SmallImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SmallImage")]
+        public Image SmallImage
+        {
+            get { return this.smallImageField ; }
+            set { this.smallImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SmallImage property
+        /// </summary>
+        /// <param name="smallImage">SmallImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithSmallImage(Image smallImage)
+        {
+            this.smallImageField = smallImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SmallImage property is set
+        /// </summary>
+        /// <returns>true if SmallImage property is set</returns>
+        public Boolean IsSetSmallImage()
+        {
+            return this.smallImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ThumbnailImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ThumbnailImage")]
+        public Image ThumbnailImage
+        {
+            get { return this.thumbnailImageField ; }
+            set { this.thumbnailImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ThumbnailImage property
+        /// </summary>
+        /// <param name="thumbnailImage">ThumbnailImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithThumbnailImage(Image thumbnailImage)
+        {
+            this.thumbnailImageField = thumbnailImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ThumbnailImage property is set
+        /// </summary>
+        /// <returns>true if ThumbnailImage property is set</returns>
+        public Boolean IsSetThumbnailImage()
+        {
+            return this.thumbnailImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TinyImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TinyImage")]
+        public Image TinyImage
+        {
+            get { return this.tinyImageField ; }
+            set { this.tinyImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TinyImage property
+        /// </summary>
+        /// <param name="tinyImage">TinyImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithTinyImage(Image tinyImage)
+        {
+            this.tinyImageField = tinyImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TinyImage property is set
+        /// </summary>
+        /// <returns>true if TinyImage property is set</returns>
+        public Boolean IsSetTinyImage()
+        {
+            return this.tinyImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MediumImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MediumImage")]
+        public Image MediumImage
+        {
+            get { return this.mediumImageField ; }
+            set { this.mediumImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MediumImage property
+        /// </summary>
+        /// <param name="mediumImage">MediumImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithMediumImage(Image mediumImage)
+        {
+            this.mediumImageField = mediumImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MediumImage property is set
+        /// </summary>
+        /// <returns>true if MediumImage property is set</returns>
+        public Boolean IsSetMediumImage()
+        {
+            return this.mediumImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LargeImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LargeImage")]
+        public Image LargeImage
+        {
+            get { return this.largeImageField ; }
+            set { this.largeImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LargeImage property
+        /// </summary>
+        /// <param name="largeImage">LargeImage property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithLargeImage(Image largeImage)
+        {
+            this.largeImageField = largeImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LargeImage property is set
+        /// </summary>
+        /// <returns>true if LargeImage property is set</returns>
+        public Boolean IsSetLargeImage()
+        {
+            return this.largeImageField != null;
+        }
+
+
+
+
+
+        /// <summary>
+        /// Gets and sets  the Category property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Category")]
+        public String Category
+        {
+            get { return this.categoryField ; }
+            set { this.categoryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Category property
+        /// </summary>
+        /// <param name="category">Category property</param>
+        /// <returns>this instance</returns>
+        public ImageSet WithCategory(String category)
+        {
+            this.categoryField = category;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Category property is set
+        /// </summary>
+        /// <returns>true if Category property is set</returns>
+        public Boolean IsSetCategory()
+        {
+            return this.categoryField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSwatchImage()) {
+                Image  swatchImage = this.SwatchImage;
+                xml.Append("<SwatchImage>");
+                xml.Append(swatchImage.ToXMLFragment());
+                xml.Append("</SwatchImage>");
+            } 
+            if (IsSetSmallImage()) {
+                Image  smallImage = this.SmallImage;
+                xml.Append("<SmallImage>");
+                xml.Append(smallImage.ToXMLFragment());
+                xml.Append("</SmallImage>");
+            } 
+            if (IsSetThumbnailImage()) {
+                Image  thumbnailImage = this.ThumbnailImage;
+                xml.Append("<ThumbnailImage>");
+                xml.Append(thumbnailImage.ToXMLFragment());
+                xml.Append("</ThumbnailImage>");
+            } 
+            if (IsSetTinyImage()) {
+                Image  tinyImage = this.TinyImage;
+                xml.Append("<TinyImage>");
+                xml.Append(tinyImage.ToXMLFragment());
+                xml.Append("</TinyImage>");
+            } 
+            if (IsSetMediumImage()) {
+                Image  mediumImage = this.MediumImage;
+                xml.Append("<MediumImage>");
+                xml.Append(mediumImage.ToXMLFragment());
+                xml.Append("</MediumImage>");
+            } 
+            if (IsSetLargeImage()) {
+                Image  largeImage = this.LargeImage;
+                xml.Append("<LargeImage>");
+                xml.Append(largeImage.ToXMLFragment());
+                xml.Append("</LargeImage>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSets.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSets.cs
new file mode 100644
index 0000000..062d75c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ImageSets.cs
@@ -0,0 +1,186 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ImageSets
+    {
+    
+        private String merchantIdField;
+
+        private  List<ImageSet> imageSetField;
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public ImageSets WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ImageSet property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ImageSet")]
+        public List<ImageSet> ImageSet
+        {
+            get
+            {
+                if (this.imageSetField == null)
+                {
+                    this.imageSetField = new List<ImageSet>();
+                }
+                return this.imageSetField;
+            }
+            set { this.imageSetField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ImageSet property
+        /// </summary>
+        /// <param name="list">ImageSet property</param>
+        /// <returns>this instance</returns>
+        public ImageSets WithImageSet(params ImageSet[] list)
+        {
+            foreach (ImageSet item in list)
+            {
+                ImageSet.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if ImageSet property is set
+        /// </summary>
+        /// <returns>true if ImageSet property is set</returns>
+        public Boolean IsSetImageSet()
+        {
+            return (ImageSet.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            List<ImageSet> imageSetList = this.ImageSet;
+            foreach (ImageSet imageSet in imageSetList) {
+                xml.Append("<ImageSet Category=" + "\"" +  EscapeXML(imageSet.Category)  + "\"" +  ">");
+                xml.Append(imageSet.ToXMLFragment());
+                xml.Append("</ImageSet>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Information.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Information.cs
new file mode 100644
index 0000000..acf59d9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Information.cs
@@ -0,0 +1,196 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Information
+    {
+    
+        private  List<OperationInformation> operationInformationField;
+
+        private  List<ResponseGroupInformation> responseGroupInformationField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationInformation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationInformation")]
+        public List<OperationInformation> OperationInformation
+        {
+            get
+            {
+                if (this.operationInformationField == null)
+                {
+                    this.operationInformationField = new List<OperationInformation>();
+                }
+                return this.operationInformationField;
+            }
+            set { this.operationInformationField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationInformation property
+        /// </summary>
+        /// <param name="list">OperationInformation property</param>
+        /// <returns>this instance</returns>
+        public Information WithOperationInformation(params OperationInformation[] list)
+        {
+            foreach (OperationInformation item in list)
+            {
+                OperationInformation.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if OperationInformation property is set
+        /// </summary>
+        /// <returns>true if OperationInformation property is set</returns>
+        public Boolean IsSetOperationInformation()
+        {
+            return (OperationInformation.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroupInformation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroupInformation")]
+        public List<ResponseGroupInformation> ResponseGroupInformation
+        {
+            get
+            {
+                if (this.responseGroupInformationField == null)
+                {
+                    this.responseGroupInformationField = new List<ResponseGroupInformation>();
+                }
+                return this.responseGroupInformationField;
+            }
+            set { this.responseGroupInformationField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroupInformation property
+        /// </summary>
+        /// <param name="list">ResponseGroupInformation property</param>
+        /// <returns>this instance</returns>
+        public Information WithResponseGroupInformation(params ResponseGroupInformation[] list)
+        {
+            foreach (ResponseGroupInformation item in list)
+            {
+                ResponseGroupInformation.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if ResponseGroupInformation property is set
+        /// </summary>
+        /// <returns>true if ResponseGroupInformation property is set</returns>
+        public Boolean IsSetResponseGroupInformation()
+        {
+            return (ResponseGroupInformation.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<OperationInformation> operationInformationList = this.OperationInformation;
+            foreach (OperationInformation operationInformation in operationInformationList) {
+                xml.Append("<OperationInformation>");
+                xml.Append(operationInformation.ToXMLFragment());
+                xml.Append("</OperationInformation>");
+            }
+            List<ResponseGroupInformation> responseGroupInformationList = this.ResponseGroupInformation;
+            foreach (ResponseGroupInformation responseGroupInformation in responseGroupInformationList) {
+                xml.Append("<ResponseGroupInformation>");
+                xml.Append(responseGroupInformation.ToXMLFragment());
+                xml.Append("</ResponseGroupInformation>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Item.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Item.cs
new file mode 100644
index 0000000..cd19e11
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Item.cs
@@ -0,0 +1,1239 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Item
+    {
+    
+        private  AlternateVersions alternateVersionsField;
+        private String ASINField;
+
+        private String parentASINField;
+
+        private String detailPageURLField;
+
+        private String salesRankField;
+
+        private  Image smallImageField;
+        private  Image mediumImageField;
+        private  Image largeImageField;
+        private  List<ImageSets> imageSetsField;
+
+        private  ItemAttributes itemAttributesField;
+        private  MerchantItemAttributes merchantItemAttributesField;
+        private  Collections collectionsField;
+        private  Subjects subjectsField;
+        private  OfferSummary offerSummaryField;
+        private  Offers offersField;
+        private  VariationSummary variationSummaryField;
+        private  Variations variationsField;
+        private  CustomerReviews customerReviewsField;
+        private  EditorialReviews editorialReviewsField;
+        private  SimilarProducts similarProductsField;
+        private  Accessories accessoriesField;
+        private  Tracks tracksField;
+        private  BrowseNodes browseNodesField;
+        private  SearchInside searchInsideField;
+        private  ListmaniaLists listmaniaListsField;
+        private  Tags tagsField;
+
+        /// <summary>
+        /// Gets and sets the AlternateVersions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AlternateVersions")]
+        public AlternateVersions AlternateVersions
+        {
+            get { return this.alternateVersionsField ; }
+            set { this.alternateVersionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AlternateVersions property
+        /// </summary>
+        /// <param name="alternateVersions">AlternateVersions property</param>
+        /// <returns>this instance</returns>
+        public Item WithAlternateVersions(AlternateVersions alternateVersions)
+        {
+            this.alternateVersionsField = alternateVersions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AlternateVersions property is set
+        /// </summary>
+        /// <returns>true if AlternateVersions property is set</returns>
+        public Boolean IsSetAlternateVersions()
+        {
+            return this.alternateVersionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public Item WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ParentASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ParentASIN")]
+        public String ParentASIN
+        {
+            get { return this.parentASINField ; }
+            set { this.parentASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ParentASIN property
+        /// </summary>
+        /// <param name="parentASIN">ParentASIN property</param>
+        /// <returns>this instance</returns>
+        public Item WithParentASIN(String parentASIN)
+        {
+            this.parentASINField = parentASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ParentASIN property is set
+        /// </summary>
+        /// <returns>true if ParentASIN property is set</returns>
+        public Boolean IsSetParentASIN()
+        {
+            return  this.parentASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DetailPageURL property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DetailPageURL")]
+        public String DetailPageURL
+        {
+            get { return this.detailPageURLField ; }
+            set { this.detailPageURLField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DetailPageURL property
+        /// </summary>
+        /// <param name="detailPageURL">DetailPageURL property</param>
+        /// <returns>this instance</returns>
+        public Item WithDetailPageURL(String detailPageURL)
+        {
+            this.detailPageURLField = detailPageURL;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DetailPageURL property is set
+        /// </summary>
+        /// <returns>true if DetailPageURL property is set</returns>
+        public Boolean IsSetDetailPageURL()
+        {
+            return  this.detailPageURLField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SalesRank property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SalesRank")]
+        public String SalesRank
+        {
+            get { return this.salesRankField ; }
+            set { this.salesRankField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SalesRank property
+        /// </summary>
+        /// <param name="salesRank">SalesRank property</param>
+        /// <returns>this instance</returns>
+        public Item WithSalesRank(String salesRank)
+        {
+            this.salesRankField = salesRank;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SalesRank property is set
+        /// </summary>
+        /// <returns>true if SalesRank property is set</returns>
+        public Boolean IsSetSalesRank()
+        {
+            return  this.salesRankField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SmallImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SmallImage")]
+        public Image SmallImage
+        {
+            get { return this.smallImageField ; }
+            set { this.smallImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SmallImage property
+        /// </summary>
+        /// <param name="smallImage">SmallImage property</param>
+        /// <returns>this instance</returns>
+        public Item WithSmallImage(Image smallImage)
+        {
+            this.smallImageField = smallImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SmallImage property is set
+        /// </summary>
+        /// <returns>true if SmallImage property is set</returns>
+        public Boolean IsSetSmallImage()
+        {
+            return this.smallImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MediumImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MediumImage")]
+        public Image MediumImage
+        {
+            get { return this.mediumImageField ; }
+            set { this.mediumImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MediumImage property
+        /// </summary>
+        /// <param name="mediumImage">MediumImage property</param>
+        /// <returns>this instance</returns>
+        public Item WithMediumImage(Image mediumImage)
+        {
+            this.mediumImageField = mediumImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MediumImage property is set
+        /// </summary>
+        /// <returns>true if MediumImage property is set</returns>
+        public Boolean IsSetMediumImage()
+        {
+            return this.mediumImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LargeImage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LargeImage")]
+        public Image LargeImage
+        {
+            get { return this.largeImageField ; }
+            set { this.largeImageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LargeImage property
+        /// </summary>
+        /// <param name="largeImage">LargeImage property</param>
+        /// <returns>this instance</returns>
+        public Item WithLargeImage(Image largeImage)
+        {
+            this.largeImageField = largeImage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LargeImage property is set
+        /// </summary>
+        /// <returns>true if LargeImage property is set</returns>
+        public Boolean IsSetLargeImage()
+        {
+            return this.largeImageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ImageSets property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ImageSets")]
+        public List<ImageSets> ImageSets
+        {
+            get
+            {
+                if (this.imageSetsField == null)
+                {
+                    this.imageSetsField = new List<ImageSets>();
+                }
+                return this.imageSetsField;
+            }
+            set { this.imageSetsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ImageSets property
+        /// </summary>
+        /// <param name="list">ImageSets property</param>
+        /// <returns>this instance</returns>
+        public Item WithImageSets(params ImageSets[] list)
+        {
+            foreach (ImageSets item in list)
+            {
+                ImageSets.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if ImageSets property is set
+        /// </summary>
+        /// <returns>true if ImageSets property is set</returns>
+        public Boolean IsSetImageSets()
+        {
+            return (ImageSets.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemAttributes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemAttributes")]
+        public ItemAttributes ItemAttributes
+        {
+            get { return this.itemAttributesField ; }
+            set { this.itemAttributesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemAttributes property
+        /// </summary>
+        /// <param name="itemAttributes">ItemAttributes property</param>
+        /// <returns>this instance</returns>
+        public Item WithItemAttributes(ItemAttributes itemAttributes)
+        {
+            this.itemAttributesField = itemAttributes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemAttributes property is set
+        /// </summary>
+        /// <returns>true if ItemAttributes property is set</returns>
+        public Boolean IsSetItemAttributes()
+        {
+            return this.itemAttributesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MerchantItemAttributes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantItemAttributes")]
+        public MerchantItemAttributes MerchantItemAttributes
+        {
+            get { return this.merchantItemAttributesField ; }
+            set { this.merchantItemAttributesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantItemAttributes property
+        /// </summary>
+        /// <param name="merchantItemAttributes">MerchantItemAttributes property</param>
+        /// <returns>this instance</returns>
+        public Item WithMerchantItemAttributes(MerchantItemAttributes merchantItemAttributes)
+        {
+            this.merchantItemAttributesField = merchantItemAttributes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantItemAttributes property is set
+        /// </summary>
+        /// <returns>true if MerchantItemAttributes property is set</returns>
+        public Boolean IsSetMerchantItemAttributes()
+        {
+            return this.merchantItemAttributesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Collections property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Collections")]
+        public Collections Collections
+        {
+            get { return this.collectionsField ; }
+            set { this.collectionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Collections property
+        /// </summary>
+        /// <param name="collections">Collections property</param>
+        /// <returns>this instance</returns>
+        public Item WithCollections(Collections collections)
+        {
+            this.collectionsField = collections;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Collections property is set
+        /// </summary>
+        /// <returns>true if Collections property is set</returns>
+        public Boolean IsSetCollections()
+        {
+            return this.collectionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Subjects property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Subjects")]
+        public Subjects Subjects
+        {
+            get { return this.subjectsField ; }
+            set { this.subjectsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Subjects property
+        /// </summary>
+        /// <param name="subjects">Subjects property</param>
+        /// <returns>this instance</returns>
+        public Item WithSubjects(Subjects subjects)
+        {
+            this.subjectsField = subjects;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Subjects property is set
+        /// </summary>
+        /// <returns>true if Subjects property is set</returns>
+        public Boolean IsSetSubjects()
+        {
+            return this.subjectsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OfferSummary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferSummary")]
+        public OfferSummary OfferSummary
+        {
+            get { return this.offerSummaryField ; }
+            set { this.offerSummaryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferSummary property
+        /// </summary>
+        /// <param name="offerSummary">OfferSummary property</param>
+        /// <returns>this instance</returns>
+        public Item WithOfferSummary(OfferSummary offerSummary)
+        {
+            this.offerSummaryField = offerSummary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferSummary property is set
+        /// </summary>
+        /// <returns>true if OfferSummary property is set</returns>
+        public Boolean IsSetOfferSummary()
+        {
+            return this.offerSummaryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Offers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Offers")]
+        public Offers Offers
+        {
+            get { return this.offersField ; }
+            set { this.offersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Offers property
+        /// </summary>
+        /// <param name="offers">Offers property</param>
+        /// <returns>this instance</returns>
+        public Item WithOffers(Offers offers)
+        {
+            this.offersField = offers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Offers property is set
+        /// </summary>
+        /// <returns>true if Offers property is set</returns>
+        public Boolean IsSetOffers()
+        {
+            return this.offersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the VariationSummary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationSummary")]
+        public VariationSummary VariationSummary
+        {
+            get { return this.variationSummaryField ; }
+            set { this.variationSummaryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationSummary property
+        /// </summary>
+        /// <param name="variationSummary">VariationSummary property</param>
+        /// <returns>this instance</returns>
+        public Item WithVariationSummary(VariationSummary variationSummary)
+        {
+            this.variationSummaryField = variationSummary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationSummary property is set
+        /// </summary>
+        /// <returns>true if VariationSummary property is set</returns>
+        public Boolean IsSetVariationSummary()
+        {
+            return this.variationSummaryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Variations property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Variations")]
+        public Variations Variations
+        {
+            get { return this.variationsField ; }
+            set { this.variationsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Variations property
+        /// </summary>
+        /// <param name="variations">Variations property</param>
+        /// <returns>this instance</returns>
+        public Item WithVariations(Variations variations)
+        {
+            this.variationsField = variations;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Variations property is set
+        /// </summary>
+        /// <returns>true if Variations property is set</returns>
+        public Boolean IsSetVariations()
+        {
+            return this.variationsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CustomerReviews property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerReviews")]
+        public CustomerReviews CustomerReviews
+        {
+            get { return this.customerReviewsField ; }
+            set { this.customerReviewsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerReviews property
+        /// </summary>
+        /// <param name="customerReviews">CustomerReviews property</param>
+        /// <returns>this instance</returns>
+        public Item WithCustomerReviews(CustomerReviews customerReviews)
+        {
+            this.customerReviewsField = customerReviews;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerReviews property is set
+        /// </summary>
+        /// <returns>true if CustomerReviews property is set</returns>
+        public Boolean IsSetCustomerReviews()
+        {
+            return this.customerReviewsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the EditorialReviews property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EditorialReviews")]
+        public EditorialReviews EditorialReviews
+        {
+            get { return this.editorialReviewsField ; }
+            set { this.editorialReviewsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EditorialReviews property
+        /// </summary>
+        /// <param name="editorialReviews">EditorialReviews property</param>
+        /// <returns>this instance</returns>
+        public Item WithEditorialReviews(EditorialReviews editorialReviews)
+        {
+            this.editorialReviewsField = editorialReviews;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EditorialReviews property is set
+        /// </summary>
+        /// <returns>true if EditorialReviews property is set</returns>
+        public Boolean IsSetEditorialReviews()
+        {
+            return this.editorialReviewsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SimilarProducts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarProducts")]
+        public SimilarProducts SimilarProducts
+        {
+            get { return this.similarProductsField ; }
+            set { this.similarProductsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarProducts property
+        /// </summary>
+        /// <param name="similarProducts">SimilarProducts property</param>
+        /// <returns>this instance</returns>
+        public Item WithSimilarProducts(SimilarProducts similarProducts)
+        {
+            this.similarProductsField = similarProducts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SimilarProducts property is set
+        /// </summary>
+        /// <returns>true if SimilarProducts property is set</returns>
+        public Boolean IsSetSimilarProducts()
+        {
+            return this.similarProductsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Accessories property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Accessories")]
+        public Accessories Accessories
+        {
+            get { return this.accessoriesField ; }
+            set { this.accessoriesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Accessories property
+        /// </summary>
+        /// <param name="accessories">Accessories property</param>
+        /// <returns>this instance</returns>
+        public Item WithAccessories(Accessories accessories)
+        {
+            this.accessoriesField = accessories;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Accessories property is set
+        /// </summary>
+        /// <returns>true if Accessories property is set</returns>
+        public Boolean IsSetAccessories()
+        {
+            return this.accessoriesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Tracks property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tracks")]
+        public Tracks Tracks
+        {
+            get { return this.tracksField ; }
+            set { this.tracksField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tracks property
+        /// </summary>
+        /// <param name="tracks">Tracks property</param>
+        /// <returns>this instance</returns>
+        public Item WithTracks(Tracks tracks)
+        {
+            this.tracksField = tracks;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Tracks property is set
+        /// </summary>
+        /// <returns>true if Tracks property is set</returns>
+        public Boolean IsSetTracks()
+        {
+            return this.tracksField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNodes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNodes")]
+        public BrowseNodes BrowseNodes
+        {
+            get { return this.browseNodesField ; }
+            set { this.browseNodesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNodes property
+        /// </summary>
+        /// <param name="browseNodes">BrowseNodes property</param>
+        /// <returns>this instance</returns>
+        public Item WithBrowseNodes(BrowseNodes browseNodes)
+        {
+            this.browseNodesField = browseNodes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BrowseNodes property is set
+        /// </summary>
+        /// <returns>true if BrowseNodes property is set</returns>
+        public Boolean IsSetBrowseNodes()
+        {
+            return this.browseNodesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SearchInside property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchInside")]
+        public SearchInside SearchInside
+        {
+            get { return this.searchInsideField ; }
+            set { this.searchInsideField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchInside property
+        /// </summary>
+        /// <param name="searchInside">SearchInside property</param>
+        /// <returns>this instance</returns>
+        public Item WithSearchInside(SearchInside searchInside)
+        {
+            this.searchInsideField = searchInside;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SearchInside property is set
+        /// </summary>
+        /// <returns>true if SearchInside property is set</returns>
+        public Boolean IsSetSearchInside()
+        {
+            return this.searchInsideField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ListmaniaLists property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListmaniaLists")]
+        public ListmaniaLists ListmaniaLists
+        {
+            get { return this.listmaniaListsField ; }
+            set { this.listmaniaListsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListmaniaLists property
+        /// </summary>
+        /// <param name="listmaniaLists">ListmaniaLists property</param>
+        /// <returns>this instance</returns>
+        public Item WithListmaniaLists(ListmaniaLists listmaniaLists)
+        {
+            this.listmaniaListsField = listmaniaLists;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListmaniaLists property is set
+        /// </summary>
+        /// <returns>true if ListmaniaLists property is set</returns>
+        public Boolean IsSetListmaniaLists()
+        {
+            return this.listmaniaListsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Tags property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tags")]
+        public Tags Tags
+        {
+            get { return this.tagsField ; }
+            set { this.tagsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tags property
+        /// </summary>
+        /// <param name="tags">Tags property</param>
+        /// <returns>this instance</returns>
+        public Item WithTags(Tags tags)
+        {
+            this.tagsField = tags;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Tags property is set
+        /// </summary>
+        /// <returns>true if Tags property is set</returns>
+        public Boolean IsSetTags()
+        {
+            return this.tagsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAlternateVersions()) {
+                AlternateVersions  alternateVersions = this.AlternateVersions;
+                xml.Append("<AlternateVersions>");
+                xml.Append(alternateVersions.ToXMLFragment());
+                xml.Append("</AlternateVersions>");
+            } 
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetParentASIN()) {
+                xml.Append("<ParentASIN>");
+                xml.Append(EscapeXML(this.ParentASIN));
+                xml.Append("</ParentASIN>");
+            }
+            if (IsSetDetailPageURL()) {
+                xml.Append("<DetailPageURL>");
+                xml.Append(EscapeXML(this.DetailPageURL));
+                xml.Append("</DetailPageURL>");
+            }
+            if (IsSetSalesRank()) {
+                xml.Append("<SalesRank>");
+                xml.Append(EscapeXML(this.SalesRank));
+                xml.Append("</SalesRank>");
+            }
+            if (IsSetSmallImage()) {
+                Image  smallImage = this.SmallImage;
+                xml.Append("<SmallImage>");
+                xml.Append(smallImage.ToXMLFragment());
+                xml.Append("</SmallImage>");
+            } 
+            if (IsSetMediumImage()) {
+                Image  mediumImage = this.MediumImage;
+                xml.Append("<MediumImage>");
+                xml.Append(mediumImage.ToXMLFragment());
+                xml.Append("</MediumImage>");
+            } 
+            if (IsSetLargeImage()) {
+                Image  largeImage = this.LargeImage;
+                xml.Append("<LargeImage>");
+                xml.Append(largeImage.ToXMLFragment());
+                xml.Append("</LargeImage>");
+            } 
+            List<ImageSets> imageSetsList = this.ImageSets;
+            foreach (ImageSets imageSets in imageSetsList) {
+                xml.Append("<ImageSets>");
+                xml.Append(imageSets.ToXMLFragment());
+                xml.Append("</ImageSets>");
+            }
+            if (IsSetItemAttributes()) {
+                ItemAttributes  itemAttributes = this.ItemAttributes;
+                xml.Append("<ItemAttributes>");
+                xml.Append(itemAttributes.ToXMLFragment());
+                xml.Append("</ItemAttributes>");
+            } 
+            if (IsSetMerchantItemAttributes()) {
+                MerchantItemAttributes  merchantItemAttributes = this.MerchantItemAttributes;
+                xml.Append("<MerchantItemAttributes>");
+                xml.Append(merchantItemAttributes.ToXMLFragment());
+                xml.Append("</MerchantItemAttributes>");
+            } 
+            if (IsSetCollections()) {
+                Collections  collections = this.Collections;
+                xml.Append("<Collections>");
+                xml.Append(collections.ToXMLFragment());
+                xml.Append("</Collections>");
+            } 
+            if (IsSetSubjects()) {
+                Subjects  subjects = this.Subjects;
+                xml.Append("<Subjects>");
+                xml.Append(subjects.ToXMLFragment());
+                xml.Append("</Subjects>");
+            } 
+            if (IsSetOfferSummary()) {
+                OfferSummary  offerSummary = this.OfferSummary;
+                xml.Append("<OfferSummary>");
+                xml.Append(offerSummary.ToXMLFragment());
+                xml.Append("</OfferSummary>");
+            } 
+            if (IsSetOffers()) {
+                Offers  offers = this.Offers;
+                xml.Append("<Offers>");
+                xml.Append(offers.ToXMLFragment());
+                xml.Append("</Offers>");
+            } 
+            if (IsSetVariationSummary()) {
+                VariationSummary  variationSummary = this.VariationSummary;
+                xml.Append("<VariationSummary>");
+                xml.Append(variationSummary.ToXMLFragment());
+                xml.Append("</VariationSummary>");
+            } 
+            if (IsSetVariations()) {
+                Variations  variations = this.Variations;
+                xml.Append("<Variations>");
+                xml.Append(variations.ToXMLFragment());
+                xml.Append("</Variations>");
+            } 
+            if (IsSetCustomerReviews()) {
+                CustomerReviews  customerReviews = this.CustomerReviews;
+                xml.Append("<CustomerReviews>");
+                xml.Append(customerReviews.ToXMLFragment());
+                xml.Append("</CustomerReviews>");
+            } 
+            if (IsSetEditorialReviews()) {
+                EditorialReviews  editorialReviews = this.EditorialReviews;
+                xml.Append("<EditorialReviews>");
+                xml.Append(editorialReviews.ToXMLFragment());
+                xml.Append("</EditorialReviews>");
+            } 
+            if (IsSetSimilarProducts()) {
+                SimilarProducts  similarProducts = this.SimilarProducts;
+                xml.Append("<SimilarProducts>");
+                xml.Append(similarProducts.ToXMLFragment());
+                xml.Append("</SimilarProducts>");
+            } 
+            if (IsSetAccessories()) {
+                Accessories  accessories = this.Accessories;
+                xml.Append("<Accessories>");
+                xml.Append(accessories.ToXMLFragment());
+                xml.Append("</Accessories>");
+            } 
+            if (IsSetTracks()) {
+                Tracks  tracks = this.Tracks;
+                xml.Append("<Tracks>");
+                xml.Append(tracks.ToXMLFragment());
+                xml.Append("</Tracks>");
+            } 
+            if (IsSetBrowseNodes()) {
+                BrowseNodes  browseNodes = this.BrowseNodes;
+                xml.Append("<BrowseNodes>");
+                xml.Append(browseNodes.ToXMLFragment());
+                xml.Append("</BrowseNodes>");
+            } 
+            if (IsSetSearchInside()) {
+                SearchInside  searchInside = this.SearchInside;
+                xml.Append("<SearchInside>");
+                xml.Append(searchInside.ToXMLFragment());
+                xml.Append("</SearchInside>");
+            } 
+            if (IsSetListmaniaLists()) {
+                ListmaniaLists  listmaniaLists = this.ListmaniaLists;
+                xml.Append("<ListmaniaLists>");
+                xml.Append(listmaniaLists.ToXMLFragment());
+                xml.Append("</ListmaniaLists>");
+            } 
+            if (IsSetTags()) {
+                Tags  tags = this.Tags;
+                xml.Append("<Tags>");
+                xml.Append(tags.ToXMLFragment());
+                xml.Append("</Tags>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemAttributes.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemAttributes.cs
new file mode 100644
index 0000000..816ab3e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemAttributes.cs
@@ -0,0 +1,12853 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemAttributes
+    {
+    
+        private List<String> actorField;
+
+        private  Address addressField;
+        private List<String> ageField;
+
+        private  DecimalWithUnits amazonMaximumAgeField;
+        private  DecimalWithUnits amazonMinimumAgeField;
+        private String analogVideoFormatField;
+
+        private String apertureModesField;
+
+        private List<String> artistField;
+
+        private String aspectRatioField;
+
+        private String assemblyInstructionsField;
+
+        private String assemblyRequiredField;
+
+        private String audienceRatingField;
+
+        private List<String> audioFormatField;
+
+        private List<String> authorField;
+
+        private String backFindingField;
+
+        private String bandMaterialTypeField;
+
+        private String batteriesIncludedField;
+
+        private String batteriesRequiredField;
+
+        private  NonNegativeIntegerWithUnits batteriesField;
+        private String batteryDescriptionField;
+
+        private String batteryTypeField;
+
+        private String bezelMaterialTypeField;
+
+        private String bindingField;
+
+        private String brandField;
+
+        private String calendarTypeField;
+
+        private List<String> cameraManualFeaturesField;
+
+        private  DecimalWithUnits caseDiameterField;
+        private String caseMaterialTypeField;
+
+        private  DecimalWithUnits caseThicknessField;
+        private String caseTypeField;
+
+        private String catalogNumberField;
+
+        private List<String> categoryField;
+
+        private List<String> categoryBinField;
+
+        private String CDRWDescriptionField;
+
+        private String chainTypeField;
+
+        private List<String> characterField;
+
+        private String CEROAgeRatingField;
+
+        private String claspTypeField;
+
+        private String clothingSizeField;
+
+        private String clubTypeField;
+
+        private String colorField;
+
+        private String compatibilityField;
+
+        private List<String> compatibleDevicesField;
+
+        private String computerHardwareTypeField;
+
+        private String computerPlatformField;
+
+        private String connectivityField;
+
+        private  DecimalWithUnits continuousShootingSpeedField;
+        private String countryField;
+
+        private String CPUManufacturerField;
+
+        private  DecimalWithUnits CPUSpeedField;
+        private String CPUTypeField;
+
+        private  List<Creator> creatorField;
+
+        private String cuisineField;
+
+        private List<String> dataLinkProtocolField;
+
+        private String deliveryOptionField;
+
+        private  DecimalWithUnits delayBetweenShotsField;
+        private String departmentField;
+
+        private String deweyDecimalNumberField;
+
+        private String dialColorField;
+
+        private String dialWindowMaterialTypeField;
+
+        private  DecimalWithUnits digitalZoomField;
+        private List<String> directorField;
+
+        private String displayColorSupportField;
+
+        private  DecimalWithUnits displaySizeField;
+        private Decimal? drumSetPieceQuantityField;
+
+        private Decimal? DVDLayersField;
+
+        private String DVDRWDescriptionField;
+
+        private Decimal? DVDSidesField;
+
+        private String DPCIField;
+
+        private String EANField;
+
+        private String editionField;
+
+        private List<String> educationalFocusField;
+
+        private List<String> ethnicityField;
+
+        private String ESRBAgeRatingField;
+
+        private String externalDisplaySupportDescriptionField;
+
+        private String fabricTypeField;
+
+        private String faxNumberField;
+
+        private List<String> featureField;
+
+        private String filmColorTypeField;
+
+        private  StringWithUnits firstIssueLeadTimeField;
+        private String flavorNameField;
+
+        private String floppyDiskDriveDescriptionField;
+
+        private List<String> formatField;
+
+        private List<String> formFactorField;
+
+        private String gemTypeField;
+
+        private List<String> gemTypeSetElementField;
+
+        private List<String> genderField;
+
+        private String genreField;
+
+        private String GLProductGroupField;
+
+        private String golfClubFlexField;
+
+        private String golfClubLoftField;
+
+        private String graphicsCardInterfaceField;
+
+        private String graphicsDescriptionField;
+
+        private  DecimalWithUnits graphicsMemorySizeField;
+        private String guitarAttributeField;
+
+        private String guitarBridgeSystemField;
+
+        private String guitarPickThicknessField;
+
+        private String guitarPickupConfigurationField;
+
+        private String handOrientationField;
+
+        private Decimal? hardDiskCountField;
+
+        private  DecimalWithUnits hardDiskSizeField;
+        private String hardDiskInterfaceField;
+
+        private String hardwarePlatformField;
+
+        private Boolean? hasAutoFocusField;
+
+        private Boolean? hasBurstModeField;
+
+        private Boolean? hasInCameraEditingField;
+
+        private Boolean? hasRedEyeReductionField;
+
+        private Boolean? hasSelfTimerField;
+
+        private Boolean? hasTripodMountField;
+
+        private Boolean? hasVideoOutField;
+
+        private Boolean? hasViewfinderField;
+
+        private String hazardousMaterialTypeField;
+
+        private String hoursOfOperationField;
+
+        private String includedSoftwareField;
+
+        private Boolean? includesMp3PlayerField;
+
+        private String ingredientsField;
+
+        private List<String> ingredientsSetElementField;
+
+        private String instrumentKeyField;
+
+        private List<String> interestField;
+
+        private Boolean? isAdultProductField;
+
+        private Boolean? isAutographedField;
+
+        private String ISBNField;
+
+        private Boolean? isFragileField;
+
+        private Boolean? isLabCreatedField;
+
+        private Boolean? isMemorabiliaField;
+
+        private  NonNegativeIntegerWithUnits ISOEquivalentField;
+        private Boolean? isPreannounceField;
+
+        private String issuesPerYearField;
+
+        private  ItemDimensions itemDimensionsField;
+        private String keyboardDescriptionField;
+
+        private String labelField;
+
+        private List<String> languageNameField;
+
+        private  Languages languagesField;
+        private String legalDisclaimerField;
+
+        private String lensTypeField;
+
+        private String lineVoltageField;
+
+        private  Price listPriceField;
+        private String macroFocusRangeField;
+
+        private String magazineTypeField;
+
+        private String malletHardnessField;
+
+        private String manufacturerField;
+
+        private String manufacturerLaborWarrantyDescriptionField;
+
+        private  DecimalWithUnits manufacturerMaximumAgeField;
+        private  DecimalWithUnits manufacturerMinimumAgeField;
+        private String manufacturerPartsWarrantyDescriptionField;
+
+        private String materialTypeField;
+
+        private List<String> materialTypeSetElementField;
+
+        private  DecimalWithUnits maximumApertureField;
+        private String maximumColorDepthField;
+
+        private  DecimalWithUnits maximumFocalLengthField;
+        private  NonNegativeIntegerWithUnits maximumHighResolutionImagesField;
+        private  NonNegativeIntegerWithUnits maximumHorizontalResolutionField;
+        private String maximumLowResolutionImagesField;
+
+        private  DecimalWithUnits maximumResolutionField;
+        private  DecimalWithUnits maximumShutterSpeedField;
+        private  NonNegativeIntegerWithUnits maximumVerticalResolutionField;
+        private  DecimalWithUnits maximumWeightRecommendationField;
+        private String mediaTypeField;
+
+        private String memorySlotsAvailableField;
+
+        private String metalStampField;
+
+        private String metalTypeField;
+
+        private String miniMovieDescriptionField;
+
+        private  DecimalWithUnits minimumFocalLengthField;
+        private  DecimalWithUnits minimumShutterSpeedField;
+        private String modelField;
+
+        private Decimal? modelYearField;
+
+        private String modemDescriptionField;
+
+        private  DecimalWithUnits monitorSizeField;
+        private  DecimalWithUnits monitorViewableDiagonalSizeField;
+        private String mouseDescriptionField;
+
+        private String MPNField;
+
+        private String musicalStyleField;
+
+        private String nativeResolutionField;
+
+        private String neighborhoodField;
+
+        private String networkInterfaceDescriptionField;
+
+        private String notebookDisplayTechnologyField;
+
+        private String notebookPointingDeviceDescriptionField;
+
+        private Decimal? numberOfDiscsField;
+
+        private Decimal? numberOfIssuesField;
+
+        private Decimal? numberOfItemsField;
+
+        private Decimal? numberOfKeysField;
+
+        private Decimal? numberOfPagesField;
+
+        private Decimal? numberOfPearlsField;
+
+        private Decimal? numberOfRapidFireShotsField;
+
+        private Decimal? numberOfStonesField;
+
+        private Decimal? numberOfStringsField;
+
+        private Decimal? numberOfTracksField;
+
+        private String operatingSystemField;
+
+        private  DecimalWithUnits opticalSensorResolutionField;
+        private  DecimalWithUnits opticalZoomField;
+        private String originalReleaseDateField;
+
+        private Decimal? outputWattageField;
+
+        private  PackageDimensions packageDimensionsField;
+        private Decimal? packageQuantityField;
+
+        private List<String> pantLengthField;
+
+        private List<String> pantSizeField;
+
+        private String pearlLustreField;
+
+        private String pearlMinimumColorField;
+
+        private String pearlShapeField;
+
+        private String pearlStringingMethodField;
+
+        private String pearlSurfaceBlemishesField;
+
+        private String pearlTypeField;
+
+        private String pearlUniformityField;
+
+        private String phoneNumberField;
+
+        private List<String> photoFlashTypeField;
+
+        private List<String> pictureFormatField;
+
+        private List<String> platformField;
+
+        private Decimal? priceRatingField;
+
+        private List<String> primaryColorField;
+
+        private Decimal? processorCountField;
+
+        private String productGroupField;
+
+        private String productSiteLaunchDateField;
+
+        private String productTypeNameField;
+
+        private String productTypeSubcategoryField;
+
+        private String promotionalTagField;
+
+        private String publicationDateField;
+
+        private String publisherField;
+
+        private String POBoxShippingExcludedField;
+
+        private String readingLevelField;
+
+        private List<String> returnMethodField;
+
+        private Decimal? recorderTrackCountField;
+
+        private String regionCodeField;
+
+        private String regionOfOriginField;
+
+        private String returnPolicyField;
+
+        private String releaseDateField;
+
+        private String removableMemoryField;
+
+        private String removableStorageField;
+
+        private String requiredVoltageRangeField;
+
+        private String resolutionModesField;
+
+        private String ringSizeField;
+
+        private  DecimalWithUnits runningTimeField;
+        private String scentNameField;
+
+        private  NonNegativeIntegerWithUnits secondaryCacheSizeField;
+        private String settingTypeField;
+
+        private String shaftMaterialTypeField;
+
+        private List<String> shoeSizeField;
+
+        private String sizeField;
+
+        private String sizePerPearlField;
+
+        private String skillLevelField;
+
+        private String SKUField;
+
+        private String soldInStoresField;
+
+        private String soundCardDescriptionField;
+
+        private Decimal? speakerCountField;
+
+        private String speakerDescriptionField;
+
+        private List<String> specialFeaturesField;
+
+        private String stoneClarityField;
+
+        private String stoneColorField;
+
+        private String stoneCutField;
+
+        private String stoneShapeField;
+
+        private  DecimalWithUnits stoneWeightField;
+        private String studioField;
+
+        private String styleField;
+
+        private  NonNegativeIntegerWithUnits subscriptionLengthField;
+        private List<String> supportedImageTypeField;
+
+        private String supportedMediaSizeField;
+
+        private  DecimalWithUnits systemBusSpeedField;
+        private  DecimalWithUnits systemMemorySizeMaxField;
+        private  DecimalWithUnits systemMemorySizeField;
+        private String systemMemoryTypeField;
+
+        private List<String> targetBrandField;
+
+        private String tellingPageIndicatorField;
+
+        private String theatricalReleaseDateField;
+
+        private String titleField;
+
+        private  DecimalWithUnits totalDiamondWeightField;
+        private Decimal? totalExternalBaysFreeField;
+
+        private Decimal? totalFirewirePortsField;
+
+        private  DecimalWithUnits totalGemWeightField;
+        private Decimal? totalInternalBaysFreeField;
+
+        private  DecimalWithUnits totalMetalWeightField;
+        private Decimal? totalNTSCPALPortsField;
+
+        private Decimal? totalParallelPortsField;
+
+        private Decimal? totalPCCardSlotsField;
+
+        private Decimal? totalPCISlotsFreeField;
+
+        private Decimal? totalSerialPortsField;
+
+        private Decimal? totalSVideoOutPortsField;
+
+        private Decimal? totalUSB2PortsField;
+
+        private Decimal? totalUSBPortsField;
+
+        private Decimal? totalVGAOutPortsField;
+
+        private String UPCField;
+
+        private String variationDenominationField;
+
+        private String variationDescriptionField;
+
+        private String warrantyField;
+
+        private String watchMovementTypeField;
+
+        private  DecimalWithUnits waterResistanceDepthField;
+        private  Price WEEETaxValueField;
+        private Decimal? wirelessMicrophoneFrequencyField;
+
+
+        /// <summary>
+        /// Gets and sets the Actor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Actor")]
+        public List<String> Actor
+        {
+            get
+            {
+                if (this.actorField == null)
+                {
+                    this.actorField = new List<String>();
+                }
+                return this.actorField;
+            }
+            set { this.actorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Actor property
+        /// </summary>
+        /// <param name="list">Actor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithActor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Actor.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Actor property is set
+        /// </summary>
+        /// <returns>true if Actor property is set</returns>
+        public Boolean IsSetActor()
+        {
+            return (Actor.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Address property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Address")]
+        public Address Address
+        {
+            get { return this.addressField ; }
+            set { this.addressField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Address property
+        /// </summary>
+        /// <param name="address">Address property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAddress(Address address)
+        {
+            this.addressField = address;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Address property is set
+        /// </summary>
+        /// <returns>true if Address property is set</returns>
+        public Boolean IsSetAddress()
+        {
+            return this.addressField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Age property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Age")]
+        public List<String> Age
+        {
+            get
+            {
+                if (this.ageField == null)
+                {
+                    this.ageField = new List<String>();
+                }
+                return this.ageField;
+            }
+            set { this.ageField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Age property
+        /// </summary>
+        /// <param name="list">Age property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAge(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Age.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Age property is set
+        /// </summary>
+        /// <returns>true if Age property is set</returns>
+        public Boolean IsSetAge()
+        {
+            return (Age.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AmazonMaximumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AmazonMaximumAge")]
+        public DecimalWithUnits AmazonMaximumAge
+        {
+            get { return this.amazonMaximumAgeField ; }
+            set { this.amazonMaximumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AmazonMaximumAge property
+        /// </summary>
+        /// <param name="amazonMaximumAge">AmazonMaximumAge property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAmazonMaximumAge(DecimalWithUnits amazonMaximumAge)
+        {
+            this.amazonMaximumAgeField = amazonMaximumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AmazonMaximumAge property is set
+        /// </summary>
+        /// <returns>true if AmazonMaximumAge property is set</returns>
+        public Boolean IsSetAmazonMaximumAge()
+        {
+            return this.amazonMaximumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AmazonMinimumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AmazonMinimumAge")]
+        public DecimalWithUnits AmazonMinimumAge
+        {
+            get { return this.amazonMinimumAgeField ; }
+            set { this.amazonMinimumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AmazonMinimumAge property
+        /// </summary>
+        /// <param name="amazonMinimumAge">AmazonMinimumAge property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAmazonMinimumAge(DecimalWithUnits amazonMinimumAge)
+        {
+            this.amazonMinimumAgeField = amazonMinimumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AmazonMinimumAge property is set
+        /// </summary>
+        /// <returns>true if AmazonMinimumAge property is set</returns>
+        public Boolean IsSetAmazonMinimumAge()
+        {
+            return this.amazonMinimumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AnalogVideoFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AnalogVideoFormat")]
+        public String AnalogVideoFormat
+        {
+            get { return this.analogVideoFormatField ; }
+            set { this.analogVideoFormatField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AnalogVideoFormat property
+        /// </summary>
+        /// <param name="analogVideoFormat">AnalogVideoFormat property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAnalogVideoFormat(String analogVideoFormat)
+        {
+            this.analogVideoFormatField = analogVideoFormat;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AnalogVideoFormat property is set
+        /// </summary>
+        /// <returns>true if AnalogVideoFormat property is set</returns>
+        public Boolean IsSetAnalogVideoFormat()
+        {
+            return  this.analogVideoFormatField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ApertureModes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ApertureModes")]
+        public String ApertureModes
+        {
+            get { return this.apertureModesField ; }
+            set { this.apertureModesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ApertureModes property
+        /// </summary>
+        /// <param name="apertureModes">ApertureModes property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithApertureModes(String apertureModes)
+        {
+            this.apertureModesField = apertureModes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ApertureModes property is set
+        /// </summary>
+        /// <returns>true if ApertureModes property is set</returns>
+        public Boolean IsSetApertureModes()
+        {
+            return  this.apertureModesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Artist property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Artist")]
+        public List<String> Artist
+        {
+            get
+            {
+                if (this.artistField == null)
+                {
+                    this.artistField = new List<String>();
+                }
+                return this.artistField;
+            }
+            set { this.artistField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Artist property
+        /// </summary>
+        /// <param name="list">Artist property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithArtist(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Artist.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Artist property is set
+        /// </summary>
+        /// <returns>true if Artist property is set</returns>
+        public Boolean IsSetArtist()
+        {
+            return (Artist.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AspectRatio property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AspectRatio")]
+        public String AspectRatio
+        {
+            get { return this.aspectRatioField ; }
+            set { this.aspectRatioField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AspectRatio property
+        /// </summary>
+        /// <param name="aspectRatio">AspectRatio property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAspectRatio(String aspectRatio)
+        {
+            this.aspectRatioField = aspectRatio;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AspectRatio property is set
+        /// </summary>
+        /// <returns>true if AspectRatio property is set</returns>
+        public Boolean IsSetAspectRatio()
+        {
+            return  this.aspectRatioField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssemblyInstructions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssemblyInstructions")]
+        public String AssemblyInstructions
+        {
+            get { return this.assemblyInstructionsField ; }
+            set { this.assemblyInstructionsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssemblyInstructions property
+        /// </summary>
+        /// <param name="assemblyInstructions">AssemblyInstructions property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAssemblyInstructions(String assemblyInstructions)
+        {
+            this.assemblyInstructionsField = assemblyInstructions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssemblyInstructions property is set
+        /// </summary>
+        /// <returns>true if AssemblyInstructions property is set</returns>
+        public Boolean IsSetAssemblyInstructions()
+        {
+            return  this.assemblyInstructionsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssemblyRequired property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssemblyRequired")]
+        public String AssemblyRequired
+        {
+            get { return this.assemblyRequiredField ; }
+            set { this.assemblyRequiredField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssemblyRequired property
+        /// </summary>
+        /// <param name="assemblyRequired">AssemblyRequired property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAssemblyRequired(String assemblyRequired)
+        {
+            this.assemblyRequiredField = assemblyRequired;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssemblyRequired property is set
+        /// </summary>
+        /// <returns>true if AssemblyRequired property is set</returns>
+        public Boolean IsSetAssemblyRequired()
+        {
+            return  this.assemblyRequiredField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudienceRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudienceRating")]
+        public String AudienceRating
+        {
+            get { return this.audienceRatingField ; }
+            set { this.audienceRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudienceRating property
+        /// </summary>
+        /// <param name="audienceRating">AudienceRating property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAudienceRating(String audienceRating)
+        {
+            this.audienceRatingField = audienceRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AudienceRating property is set
+        /// </summary>
+        /// <returns>true if AudienceRating property is set</returns>
+        public Boolean IsSetAudienceRating()
+        {
+            return  this.audienceRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudioFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudioFormat")]
+        public List<String> AudioFormat
+        {
+            get
+            {
+                if (this.audioFormatField == null)
+                {
+                    this.audioFormatField = new List<String>();
+                }
+                return this.audioFormatField;
+            }
+            set { this.audioFormatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudioFormat property
+        /// </summary>
+        /// <param name="list">AudioFormat property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAudioFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                AudioFormat.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of AudioFormat property is set
+        /// </summary>
+        /// <returns>true if AudioFormat property is set</returns>
+        public Boolean IsSetAudioFormat()
+        {
+            return (AudioFormat.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Author property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Author")]
+        public List<String> Author
+        {
+            get
+            {
+                if (this.authorField == null)
+                {
+                    this.authorField = new List<String>();
+                }
+                return this.authorField;
+            }
+            set { this.authorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Author property
+        /// </summary>
+        /// <param name="list">Author property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithAuthor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Author.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Author property is set
+        /// </summary>
+        /// <returns>true if Author property is set</returns>
+        public Boolean IsSetAuthor()
+        {
+            return (Author.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BackFinding property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BackFinding")]
+        public String BackFinding
+        {
+            get { return this.backFindingField ; }
+            set { this.backFindingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BackFinding property
+        /// </summary>
+        /// <param name="backFinding">BackFinding property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBackFinding(String backFinding)
+        {
+            this.backFindingField = backFinding;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BackFinding property is set
+        /// </summary>
+        /// <returns>true if BackFinding property is set</returns>
+        public Boolean IsSetBackFinding()
+        {
+            return  this.backFindingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BandMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BandMaterialType")]
+        public String BandMaterialType
+        {
+            get { return this.bandMaterialTypeField ; }
+            set { this.bandMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BandMaterialType property
+        /// </summary>
+        /// <param name="bandMaterialType">BandMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBandMaterialType(String bandMaterialType)
+        {
+            this.bandMaterialTypeField = bandMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BandMaterialType property is set
+        /// </summary>
+        /// <returns>true if BandMaterialType property is set</returns>
+        public Boolean IsSetBandMaterialType()
+        {
+            return  this.bandMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteriesIncluded property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteriesIncluded")]
+        public String BatteriesIncluded
+        {
+            get { return this.batteriesIncludedField ; }
+            set { this.batteriesIncludedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteriesIncluded property
+        /// </summary>
+        /// <param name="batteriesIncluded">BatteriesIncluded property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBatteriesIncluded(String batteriesIncluded)
+        {
+            this.batteriesIncludedField = batteriesIncluded;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteriesIncluded property is set
+        /// </summary>
+        /// <returns>true if BatteriesIncluded property is set</returns>
+        public Boolean IsSetBatteriesIncluded()
+        {
+            return  this.batteriesIncludedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteriesRequired property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteriesRequired")]
+        public String BatteriesRequired
+        {
+            get { return this.batteriesRequiredField ; }
+            set { this.batteriesRequiredField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteriesRequired property
+        /// </summary>
+        /// <param name="batteriesRequired">BatteriesRequired property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBatteriesRequired(String batteriesRequired)
+        {
+            this.batteriesRequiredField = batteriesRequired;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteriesRequired property is set
+        /// </summary>
+        /// <returns>true if BatteriesRequired property is set</returns>
+        public Boolean IsSetBatteriesRequired()
+        {
+            return  this.batteriesRequiredField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Batteries property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Batteries")]
+        public NonNegativeIntegerWithUnits Batteries
+        {
+            get { return this.batteriesField ; }
+            set { this.batteriesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Batteries property
+        /// </summary>
+        /// <param name="batteries">Batteries property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBatteries(NonNegativeIntegerWithUnits batteries)
+        {
+            this.batteriesField = batteries;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Batteries property is set
+        /// </summary>
+        /// <returns>true if Batteries property is set</returns>
+        public Boolean IsSetBatteries()
+        {
+            return this.batteriesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BatteryDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteryDescription")]
+        public String BatteryDescription
+        {
+            get { return this.batteryDescriptionField ; }
+            set { this.batteryDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteryDescription property
+        /// </summary>
+        /// <param name="batteryDescription">BatteryDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBatteryDescription(String batteryDescription)
+        {
+            this.batteryDescriptionField = batteryDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteryDescription property is set
+        /// </summary>
+        /// <returns>true if BatteryDescription property is set</returns>
+        public Boolean IsSetBatteryDescription()
+        {
+            return  this.batteryDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteryType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteryType")]
+        public String BatteryType
+        {
+            get { return this.batteryTypeField ; }
+            set { this.batteryTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteryType property
+        /// </summary>
+        /// <param name="batteryType">BatteryType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBatteryType(String batteryType)
+        {
+            this.batteryTypeField = batteryType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteryType property is set
+        /// </summary>
+        /// <returns>true if BatteryType property is set</returns>
+        public Boolean IsSetBatteryType()
+        {
+            return  this.batteryTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BezelMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BezelMaterialType")]
+        public String BezelMaterialType
+        {
+            get { return this.bezelMaterialTypeField ; }
+            set { this.bezelMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BezelMaterialType property
+        /// </summary>
+        /// <param name="bezelMaterialType">BezelMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBezelMaterialType(String bezelMaterialType)
+        {
+            this.bezelMaterialTypeField = bezelMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BezelMaterialType property is set
+        /// </summary>
+        /// <returns>true if BezelMaterialType property is set</returns>
+        public Boolean IsSetBezelMaterialType()
+        {
+            return  this.bezelMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Binding property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Binding")]
+        public String Binding
+        {
+            get { return this.bindingField ; }
+            set { this.bindingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Binding property
+        /// </summary>
+        /// <param name="binding">Binding property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBinding(String binding)
+        {
+            this.bindingField = binding;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Binding property is set
+        /// </summary>
+        /// <returns>true if Binding property is set</returns>
+        public Boolean IsSetBinding()
+        {
+            return  this.bindingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Brand property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Brand")]
+        public String Brand
+        {
+            get { return this.brandField ; }
+            set { this.brandField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Brand property
+        /// </summary>
+        /// <param name="brand">Brand property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithBrand(String brand)
+        {
+            this.brandField = brand;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Brand property is set
+        /// </summary>
+        /// <returns>true if Brand property is set</returns>
+        public Boolean IsSetBrand()
+        {
+            return  this.brandField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CalendarType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CalendarType")]
+        public String CalendarType
+        {
+            get { return this.calendarTypeField ; }
+            set { this.calendarTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CalendarType property
+        /// </summary>
+        /// <param name="calendarType">CalendarType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCalendarType(String calendarType)
+        {
+            this.calendarTypeField = calendarType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CalendarType property is set
+        /// </summary>
+        /// <returns>true if CalendarType property is set</returns>
+        public Boolean IsSetCalendarType()
+        {
+            return  this.calendarTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CameraManualFeatures property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CameraManualFeatures")]
+        public List<String> CameraManualFeatures
+        {
+            get
+            {
+                if (this.cameraManualFeaturesField == null)
+                {
+                    this.cameraManualFeaturesField = new List<String>();
+                }
+                return this.cameraManualFeaturesField;
+            }
+            set { this.cameraManualFeaturesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CameraManualFeatures property
+        /// </summary>
+        /// <param name="list">CameraManualFeatures property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCameraManualFeatures(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                CameraManualFeatures.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of CameraManualFeatures property is set
+        /// </summary>
+        /// <returns>true if CameraManualFeatures property is set</returns>
+        public Boolean IsSetCameraManualFeatures()
+        {
+            return (CameraManualFeatures.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseDiameter property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseDiameter")]
+        public DecimalWithUnits CaseDiameter
+        {
+            get { return this.caseDiameterField ; }
+            set { this.caseDiameterField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseDiameter property
+        /// </summary>
+        /// <param name="caseDiameter">CaseDiameter property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCaseDiameter(DecimalWithUnits caseDiameter)
+        {
+            this.caseDiameterField = caseDiameter;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseDiameter property is set
+        /// </summary>
+        /// <returns>true if CaseDiameter property is set</returns>
+        public Boolean IsSetCaseDiameter()
+        {
+            return this.caseDiameterField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseMaterialType")]
+        public String CaseMaterialType
+        {
+            get { return this.caseMaterialTypeField ; }
+            set { this.caseMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseMaterialType property
+        /// </summary>
+        /// <param name="caseMaterialType">CaseMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCaseMaterialType(String caseMaterialType)
+        {
+            this.caseMaterialTypeField = caseMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseMaterialType property is set
+        /// </summary>
+        /// <returns>true if CaseMaterialType property is set</returns>
+        public Boolean IsSetCaseMaterialType()
+        {
+            return  this.caseMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CaseThickness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseThickness")]
+        public DecimalWithUnits CaseThickness
+        {
+            get { return this.caseThicknessField ; }
+            set { this.caseThicknessField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseThickness property
+        /// </summary>
+        /// <param name="caseThickness">CaseThickness property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCaseThickness(DecimalWithUnits caseThickness)
+        {
+            this.caseThicknessField = caseThickness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseThickness property is set
+        /// </summary>
+        /// <returns>true if CaseThickness property is set</returns>
+        public Boolean IsSetCaseThickness()
+        {
+            return this.caseThicknessField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseType")]
+        public String CaseType
+        {
+            get { return this.caseTypeField ; }
+            set { this.caseTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseType property
+        /// </summary>
+        /// <param name="caseType">CaseType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCaseType(String caseType)
+        {
+            this.caseTypeField = caseType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseType property is set
+        /// </summary>
+        /// <returns>true if CaseType property is set</returns>
+        public Boolean IsSetCaseType()
+        {
+            return  this.caseTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CatalogNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CatalogNumber")]
+        public String CatalogNumber
+        {
+            get { return this.catalogNumberField ; }
+            set { this.catalogNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CatalogNumber property
+        /// </summary>
+        /// <param name="catalogNumber">CatalogNumber property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCatalogNumber(String catalogNumber)
+        {
+            this.catalogNumberField = catalogNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CatalogNumber property is set
+        /// </summary>
+        /// <returns>true if CatalogNumber property is set</returns>
+        public Boolean IsSetCatalogNumber()
+        {
+            return  this.catalogNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Category property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Category")]
+        public List<String> Category
+        {
+            get
+            {
+                if (this.categoryField == null)
+                {
+                    this.categoryField = new List<String>();
+                }
+                return this.categoryField;
+            }
+            set { this.categoryField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Category property
+        /// </summary>
+        /// <param name="list">Category property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCategory(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Category.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Category property is set
+        /// </summary>
+        /// <returns>true if Category property is set</returns>
+        public Boolean IsSetCategory()
+        {
+            return (Category.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CategoryBin property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CategoryBin")]
+        public List<String> CategoryBin
+        {
+            get
+            {
+                if (this.categoryBinField == null)
+                {
+                    this.categoryBinField = new List<String>();
+                }
+                return this.categoryBinField;
+            }
+            set { this.categoryBinField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CategoryBin property
+        /// </summary>
+        /// <param name="list">CategoryBin property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCategoryBin(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                CategoryBin.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of CategoryBin property is set
+        /// </summary>
+        /// <returns>true if CategoryBin property is set</returns>
+        public Boolean IsSetCategoryBin()
+        {
+            return (CategoryBin.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CDRWDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CDRWDescription")]
+        public String CDRWDescription
+        {
+            get { return this.CDRWDescriptionField ; }
+            set { this.CDRWDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CDRWDescription property
+        /// </summary>
+        /// <param name="CDRWDescription">CDRWDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCDRWDescription(String CDRWDescription)
+        {
+            this.CDRWDescriptionField = CDRWDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CDRWDescription property is set
+        /// </summary>
+        /// <returns>true if CDRWDescription property is set</returns>
+        public Boolean IsSetCDRWDescription()
+        {
+            return  this.CDRWDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ChainType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ChainType")]
+        public String ChainType
+        {
+            get { return this.chainTypeField ; }
+            set { this.chainTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ChainType property
+        /// </summary>
+        /// <param name="chainType">ChainType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithChainType(String chainType)
+        {
+            this.chainTypeField = chainType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ChainType property is set
+        /// </summary>
+        /// <returns>true if ChainType property is set</returns>
+        public Boolean IsSetChainType()
+        {
+            return  this.chainTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Character property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Character")]
+        public List<String> Character
+        {
+            get
+            {
+                if (this.characterField == null)
+                {
+                    this.characterField = new List<String>();
+                }
+                return this.characterField;
+            }
+            set { this.characterField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Character property
+        /// </summary>
+        /// <param name="list">Character property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCharacter(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Character.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Character property is set
+        /// </summary>
+        /// <returns>true if Character property is set</returns>
+        public Boolean IsSetCharacter()
+        {
+            return (Character.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CEROAgeRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CEROAgeRating")]
+        public String CEROAgeRating
+        {
+            get { return this.CEROAgeRatingField ; }
+            set { this.CEROAgeRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CEROAgeRating property
+        /// </summary>
+        /// <param name="CEROAgeRating">CEROAgeRating property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCEROAgeRating(String CEROAgeRating)
+        {
+            this.CEROAgeRatingField = CEROAgeRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CEROAgeRating property is set
+        /// </summary>
+        /// <returns>true if CEROAgeRating property is set</returns>
+        public Boolean IsSetCEROAgeRating()
+        {
+            return  this.CEROAgeRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ClaspType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ClaspType")]
+        public String ClaspType
+        {
+            get { return this.claspTypeField ; }
+            set { this.claspTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ClaspType property
+        /// </summary>
+        /// <param name="claspType">ClaspType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithClaspType(String claspType)
+        {
+            this.claspTypeField = claspType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ClaspType property is set
+        /// </summary>
+        /// <returns>true if ClaspType property is set</returns>
+        public Boolean IsSetClaspType()
+        {
+            return  this.claspTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ClothingSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ClothingSize")]
+        public String ClothingSize
+        {
+            get { return this.clothingSizeField ; }
+            set { this.clothingSizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ClothingSize property
+        /// </summary>
+        /// <param name="clothingSize">ClothingSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithClothingSize(String clothingSize)
+        {
+            this.clothingSizeField = clothingSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ClothingSize property is set
+        /// </summary>
+        /// <returns>true if ClothingSize property is set</returns>
+        public Boolean IsSetClothingSize()
+        {
+            return  this.clothingSizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ClubType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ClubType")]
+        public String ClubType
+        {
+            get { return this.clubTypeField ; }
+            set { this.clubTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ClubType property
+        /// </summary>
+        /// <param name="clubType">ClubType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithClubType(String clubType)
+        {
+            this.clubTypeField = clubType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ClubType property is set
+        /// </summary>
+        /// <returns>true if ClubType property is set</returns>
+        public Boolean IsSetClubType()
+        {
+            return  this.clubTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Color property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Color")]
+        public String Color
+        {
+            get { return this.colorField ; }
+            set { this.colorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Color property
+        /// </summary>
+        /// <param name="color">Color property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithColor(String color)
+        {
+            this.colorField = color;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Color property is set
+        /// </summary>
+        /// <returns>true if Color property is set</returns>
+        public Boolean IsSetColor()
+        {
+            return  this.colorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Compatibility property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Compatibility")]
+        public String Compatibility
+        {
+            get { return this.compatibilityField ; }
+            set { this.compatibilityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Compatibility property
+        /// </summary>
+        /// <param name="compatibility">Compatibility property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCompatibility(String compatibility)
+        {
+            this.compatibilityField = compatibility;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Compatibility property is set
+        /// </summary>
+        /// <returns>true if Compatibility property is set</returns>
+        public Boolean IsSetCompatibility()
+        {
+            return  this.compatibilityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CompatibleDevices property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CompatibleDevices")]
+        public List<String> CompatibleDevices
+        {
+            get
+            {
+                if (this.compatibleDevicesField == null)
+                {
+                    this.compatibleDevicesField = new List<String>();
+                }
+                return this.compatibleDevicesField;
+            }
+            set { this.compatibleDevicesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CompatibleDevices property
+        /// </summary>
+        /// <param name="list">CompatibleDevices property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCompatibleDevices(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                CompatibleDevices.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of CompatibleDevices property is set
+        /// </summary>
+        /// <returns>true if CompatibleDevices property is set</returns>
+        public Boolean IsSetCompatibleDevices()
+        {
+            return (CompatibleDevices.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ComputerHardwareType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ComputerHardwareType")]
+        public String ComputerHardwareType
+        {
+            get { return this.computerHardwareTypeField ; }
+            set { this.computerHardwareTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ComputerHardwareType property
+        /// </summary>
+        /// <param name="computerHardwareType">ComputerHardwareType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithComputerHardwareType(String computerHardwareType)
+        {
+            this.computerHardwareTypeField = computerHardwareType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ComputerHardwareType property is set
+        /// </summary>
+        /// <returns>true if ComputerHardwareType property is set</returns>
+        public Boolean IsSetComputerHardwareType()
+        {
+            return  this.computerHardwareTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ComputerPlatform property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ComputerPlatform")]
+        public String ComputerPlatform
+        {
+            get { return this.computerPlatformField ; }
+            set { this.computerPlatformField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ComputerPlatform property
+        /// </summary>
+        /// <param name="computerPlatform">ComputerPlatform property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithComputerPlatform(String computerPlatform)
+        {
+            this.computerPlatformField = computerPlatform;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ComputerPlatform property is set
+        /// </summary>
+        /// <returns>true if ComputerPlatform property is set</returns>
+        public Boolean IsSetComputerPlatform()
+        {
+            return  this.computerPlatformField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Connectivity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Connectivity")]
+        public String Connectivity
+        {
+            get { return this.connectivityField ; }
+            set { this.connectivityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Connectivity property
+        /// </summary>
+        /// <param name="connectivity">Connectivity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithConnectivity(String connectivity)
+        {
+            this.connectivityField = connectivity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Connectivity property is set
+        /// </summary>
+        /// <returns>true if Connectivity property is set</returns>
+        public Boolean IsSetConnectivity()
+        {
+            return  this.connectivityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ContinuousShootingSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ContinuousShootingSpeed")]
+        public DecimalWithUnits ContinuousShootingSpeed
+        {
+            get { return this.continuousShootingSpeedField ; }
+            set { this.continuousShootingSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ContinuousShootingSpeed property
+        /// </summary>
+        /// <param name="continuousShootingSpeed">ContinuousShootingSpeed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithContinuousShootingSpeed(DecimalWithUnits continuousShootingSpeed)
+        {
+            this.continuousShootingSpeedField = continuousShootingSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ContinuousShootingSpeed property is set
+        /// </summary>
+        /// <returns>true if ContinuousShootingSpeed property is set</returns>
+        public Boolean IsSetContinuousShootingSpeed()
+        {
+            return this.continuousShootingSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Country property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Country")]
+        public String Country
+        {
+            get { return this.countryField ; }
+            set { this.countryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Country property
+        /// </summary>
+        /// <param name="country">Country property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCountry(String country)
+        {
+            this.countryField = country;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Country property is set
+        /// </summary>
+        /// <returns>true if Country property is set</returns>
+        public Boolean IsSetCountry()
+        {
+            return  this.countryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CPUManufacturer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUManufacturer")]
+        public String CPUManufacturer
+        {
+            get { return this.CPUManufacturerField ; }
+            set { this.CPUManufacturerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUManufacturer property
+        /// </summary>
+        /// <param name="CPUManufacturer">CPUManufacturer property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCPUManufacturer(String CPUManufacturer)
+        {
+            this.CPUManufacturerField = CPUManufacturer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUManufacturer property is set
+        /// </summary>
+        /// <returns>true if CPUManufacturer property is set</returns>
+        public Boolean IsSetCPUManufacturer()
+        {
+            return  this.CPUManufacturerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CPUSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUSpeed")]
+        public DecimalWithUnits CPUSpeed
+        {
+            get { return this.CPUSpeedField ; }
+            set { this.CPUSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUSpeed property
+        /// </summary>
+        /// <param name="CPUSpeed">CPUSpeed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCPUSpeed(DecimalWithUnits CPUSpeed)
+        {
+            this.CPUSpeedField = CPUSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUSpeed property is set
+        /// </summary>
+        /// <returns>true if CPUSpeed property is set</returns>
+        public Boolean IsSetCPUSpeed()
+        {
+            return this.CPUSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CPUType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUType")]
+        public String CPUType
+        {
+            get { return this.CPUTypeField ; }
+            set { this.CPUTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUType property
+        /// </summary>
+        /// <param name="CPUType">CPUType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCPUType(String CPUType)
+        {
+            this.CPUTypeField = CPUType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUType property is set
+        /// </summary>
+        /// <returns>true if CPUType property is set</returns>
+        public Boolean IsSetCPUType()
+        {
+            return  this.CPUTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Creator property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Creator")]
+        public List<Creator> Creator
+        {
+            get
+            {
+                if (this.creatorField == null)
+                {
+                    this.creatorField = new List<Creator>();
+                }
+                return this.creatorField;
+            }
+            set { this.creatorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Creator property
+        /// </summary>
+        /// <param name="list">Creator property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCreator(params Creator[] list)
+        {
+            foreach (Creator item in list)
+            {
+                Creator.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Creator property is set
+        /// </summary>
+        /// <returns>true if Creator property is set</returns>
+        public Boolean IsSetCreator()
+        {
+            return (Creator.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Cuisine property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cuisine")]
+        public String Cuisine
+        {
+            get { return this.cuisineField ; }
+            set { this.cuisineField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cuisine property
+        /// </summary>
+        /// <param name="cuisine">Cuisine property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithCuisine(String cuisine)
+        {
+            this.cuisineField = cuisine;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Cuisine property is set
+        /// </summary>
+        /// <returns>true if Cuisine property is set</returns>
+        public Boolean IsSetCuisine()
+        {
+            return  this.cuisineField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DataLinkProtocol property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DataLinkProtocol")]
+        public List<String> DataLinkProtocol
+        {
+            get
+            {
+                if (this.dataLinkProtocolField == null)
+                {
+                    this.dataLinkProtocolField = new List<String>();
+                }
+                return this.dataLinkProtocolField;
+            }
+            set { this.dataLinkProtocolField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DataLinkProtocol property
+        /// </summary>
+        /// <param name="list">DataLinkProtocol property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDataLinkProtocol(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                DataLinkProtocol.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of DataLinkProtocol property is set
+        /// </summary>
+        /// <returns>true if DataLinkProtocol property is set</returns>
+        public Boolean IsSetDataLinkProtocol()
+        {
+            return (DataLinkProtocol.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryOption property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryOption")]
+        public String DeliveryOption
+        {
+            get { return this.deliveryOptionField ; }
+            set { this.deliveryOptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryOption property
+        /// </summary>
+        /// <param name="deliveryOption">DeliveryOption property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDeliveryOption(String deliveryOption)
+        {
+            this.deliveryOptionField = deliveryOption;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryOption property is set
+        /// </summary>
+        /// <returns>true if DeliveryOption property is set</returns>
+        public Boolean IsSetDeliveryOption()
+        {
+            return  this.deliveryOptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DelayBetweenShots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DelayBetweenShots")]
+        public DecimalWithUnits DelayBetweenShots
+        {
+            get { return this.delayBetweenShotsField ; }
+            set { this.delayBetweenShotsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DelayBetweenShots property
+        /// </summary>
+        /// <param name="delayBetweenShots">DelayBetweenShots property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDelayBetweenShots(DecimalWithUnits delayBetweenShots)
+        {
+            this.delayBetweenShotsField = delayBetweenShots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DelayBetweenShots property is set
+        /// </summary>
+        /// <returns>true if DelayBetweenShots property is set</returns>
+        public Boolean IsSetDelayBetweenShots()
+        {
+            return this.delayBetweenShotsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Department property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Department")]
+        public String Department
+        {
+            get { return this.departmentField ; }
+            set { this.departmentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Department property
+        /// </summary>
+        /// <param name="department">Department property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDepartment(String department)
+        {
+            this.departmentField = department;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Department property is set
+        /// </summary>
+        /// <returns>true if Department property is set</returns>
+        public Boolean IsSetDepartment()
+        {
+            return  this.departmentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeweyDecimalNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeweyDecimalNumber")]
+        public String DeweyDecimalNumber
+        {
+            get { return this.deweyDecimalNumberField ; }
+            set { this.deweyDecimalNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeweyDecimalNumber property
+        /// </summary>
+        /// <param name="deweyDecimalNumber">DeweyDecimalNumber property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDeweyDecimalNumber(String deweyDecimalNumber)
+        {
+            this.deweyDecimalNumberField = deweyDecimalNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeweyDecimalNumber property is set
+        /// </summary>
+        /// <returns>true if DeweyDecimalNumber property is set</returns>
+        public Boolean IsSetDeweyDecimalNumber()
+        {
+            return  this.deweyDecimalNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DialColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DialColor")]
+        public String DialColor
+        {
+            get { return this.dialColorField ; }
+            set { this.dialColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DialColor property
+        /// </summary>
+        /// <param name="dialColor">DialColor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDialColor(String dialColor)
+        {
+            this.dialColorField = dialColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DialColor property is set
+        /// </summary>
+        /// <returns>true if DialColor property is set</returns>
+        public Boolean IsSetDialColor()
+        {
+            return  this.dialColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DialWindowMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DialWindowMaterialType")]
+        public String DialWindowMaterialType
+        {
+            get { return this.dialWindowMaterialTypeField ; }
+            set { this.dialWindowMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DialWindowMaterialType property
+        /// </summary>
+        /// <param name="dialWindowMaterialType">DialWindowMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDialWindowMaterialType(String dialWindowMaterialType)
+        {
+            this.dialWindowMaterialTypeField = dialWindowMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DialWindowMaterialType property is set
+        /// </summary>
+        /// <returns>true if DialWindowMaterialType property is set</returns>
+        public Boolean IsSetDialWindowMaterialType()
+        {
+            return  this.dialWindowMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DigitalZoom property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DigitalZoom")]
+        public DecimalWithUnits DigitalZoom
+        {
+            get { return this.digitalZoomField ; }
+            set { this.digitalZoomField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DigitalZoom property
+        /// </summary>
+        /// <param name="digitalZoom">DigitalZoom property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDigitalZoom(DecimalWithUnits digitalZoom)
+        {
+            this.digitalZoomField = digitalZoom;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DigitalZoom property is set
+        /// </summary>
+        /// <returns>true if DigitalZoom property is set</returns>
+        public Boolean IsSetDigitalZoom()
+        {
+            return this.digitalZoomField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Director property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Director")]
+        public List<String> Director
+        {
+            get
+            {
+                if (this.directorField == null)
+                {
+                    this.directorField = new List<String>();
+                }
+                return this.directorField;
+            }
+            set { this.directorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Director property
+        /// </summary>
+        /// <param name="list">Director property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDirector(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Director.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Director property is set
+        /// </summary>
+        /// <returns>true if Director property is set</returns>
+        public Boolean IsSetDirector()
+        {
+            return (Director.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DisplayColorSupport property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DisplayColorSupport")]
+        public String DisplayColorSupport
+        {
+            get { return this.displayColorSupportField ; }
+            set { this.displayColorSupportField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DisplayColorSupport property
+        /// </summary>
+        /// <param name="displayColorSupport">DisplayColorSupport property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDisplayColorSupport(String displayColorSupport)
+        {
+            this.displayColorSupportField = displayColorSupport;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DisplayColorSupport property is set
+        /// </summary>
+        /// <returns>true if DisplayColorSupport property is set</returns>
+        public Boolean IsSetDisplayColorSupport()
+        {
+            return  this.displayColorSupportField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DisplaySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DisplaySize")]
+        public DecimalWithUnits DisplaySize
+        {
+            get { return this.displaySizeField ; }
+            set { this.displaySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DisplaySize property
+        /// </summary>
+        /// <param name="displaySize">DisplaySize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDisplaySize(DecimalWithUnits displaySize)
+        {
+            this.displaySizeField = displaySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DisplaySize property is set
+        /// </summary>
+        /// <returns>true if DisplaySize property is set</returns>
+        public Boolean IsSetDisplaySize()
+        {
+            return this.displaySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DrumSetPieceQuantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DrumSetPieceQuantity")]
+        public Decimal DrumSetPieceQuantity
+        {
+            get { return this.drumSetPieceQuantityField.GetValueOrDefault() ; }
+            set { this.drumSetPieceQuantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DrumSetPieceQuantity property
+        /// </summary>
+        /// <param name="drumSetPieceQuantity">DrumSetPieceQuantity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDrumSetPieceQuantity(Decimal drumSetPieceQuantity)
+        {
+            this.drumSetPieceQuantityField = drumSetPieceQuantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DrumSetPieceQuantity property is set
+        /// </summary>
+        /// <returns>true if DrumSetPieceQuantity property is set</returns>
+        public Boolean IsSetDrumSetPieceQuantity()
+        {
+            return  this.drumSetPieceQuantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDLayers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDLayers")]
+        public Decimal DVDLayers
+        {
+            get { return this.DVDLayersField.GetValueOrDefault() ; }
+            set { this.DVDLayersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDLayers property
+        /// </summary>
+        /// <param name="DVDLayers">DVDLayers property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDVDLayers(Decimal DVDLayers)
+        {
+            this.DVDLayersField = DVDLayers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDLayers property is set
+        /// </summary>
+        /// <returns>true if DVDLayers property is set</returns>
+        public Boolean IsSetDVDLayers()
+        {
+            return  this.DVDLayersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDRWDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDRWDescription")]
+        public String DVDRWDescription
+        {
+            get { return this.DVDRWDescriptionField ; }
+            set { this.DVDRWDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDRWDescription property
+        /// </summary>
+        /// <param name="DVDRWDescription">DVDRWDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDVDRWDescription(String DVDRWDescription)
+        {
+            this.DVDRWDescriptionField = DVDRWDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDRWDescription property is set
+        /// </summary>
+        /// <returns>true if DVDRWDescription property is set</returns>
+        public Boolean IsSetDVDRWDescription()
+        {
+            return  this.DVDRWDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDSides property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDSides")]
+        public Decimal DVDSides
+        {
+            get { return this.DVDSidesField.GetValueOrDefault() ; }
+            set { this.DVDSidesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDSides property
+        /// </summary>
+        /// <param name="DVDSides">DVDSides property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDVDSides(Decimal DVDSides)
+        {
+            this.DVDSidesField = DVDSides;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDSides property is set
+        /// </summary>
+        /// <returns>true if DVDSides property is set</returns>
+        public Boolean IsSetDVDSides()
+        {
+            return  this.DVDSidesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DPCI property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DPCI")]
+        public String DPCI
+        {
+            get { return this.DPCIField ; }
+            set { this.DPCIField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DPCI property
+        /// </summary>
+        /// <param name="DPCI">DPCI property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithDPCI(String DPCI)
+        {
+            this.DPCIField = DPCI;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DPCI property is set
+        /// </summary>
+        /// <returns>true if DPCI property is set</returns>
+        public Boolean IsSetDPCI()
+        {
+            return  this.DPCIField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EAN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EAN")]
+        public String EAN
+        {
+            get { return this.EANField ; }
+            set { this.EANField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EAN property
+        /// </summary>
+        /// <param name="EAN">EAN property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithEAN(String EAN)
+        {
+            this.EANField = EAN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EAN property is set
+        /// </summary>
+        /// <returns>true if EAN property is set</returns>
+        public Boolean IsSetEAN()
+        {
+            return  this.EANField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Edition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Edition")]
+        public String Edition
+        {
+            get { return this.editionField ; }
+            set { this.editionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Edition property
+        /// </summary>
+        /// <param name="edition">Edition property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithEdition(String edition)
+        {
+            this.editionField = edition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Edition property is set
+        /// </summary>
+        /// <returns>true if Edition property is set</returns>
+        public Boolean IsSetEdition()
+        {
+            return  this.editionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EducationalFocus property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EducationalFocus")]
+        public List<String> EducationalFocus
+        {
+            get
+            {
+                if (this.educationalFocusField == null)
+                {
+                    this.educationalFocusField = new List<String>();
+                }
+                return this.educationalFocusField;
+            }
+            set { this.educationalFocusField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EducationalFocus property
+        /// </summary>
+        /// <param name="list">EducationalFocus property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithEducationalFocus(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                EducationalFocus.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of EducationalFocus property is set
+        /// </summary>
+        /// <returns>true if EducationalFocus property is set</returns>
+        public Boolean IsSetEducationalFocus()
+        {
+            return (EducationalFocus.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Ethnicity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Ethnicity")]
+        public List<String> Ethnicity
+        {
+            get
+            {
+                if (this.ethnicityField == null)
+                {
+                    this.ethnicityField = new List<String>();
+                }
+                return this.ethnicityField;
+            }
+            set { this.ethnicityField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Ethnicity property
+        /// </summary>
+        /// <param name="list">Ethnicity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithEthnicity(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Ethnicity.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Ethnicity property is set
+        /// </summary>
+        /// <returns>true if Ethnicity property is set</returns>
+        public Boolean IsSetEthnicity()
+        {
+            return (Ethnicity.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ESRBAgeRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ESRBAgeRating")]
+        public String ESRBAgeRating
+        {
+            get { return this.ESRBAgeRatingField ; }
+            set { this.ESRBAgeRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ESRBAgeRating property
+        /// </summary>
+        /// <param name="ESRBAgeRating">ESRBAgeRating property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithESRBAgeRating(String ESRBAgeRating)
+        {
+            this.ESRBAgeRatingField = ESRBAgeRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ESRBAgeRating property is set
+        /// </summary>
+        /// <returns>true if ESRBAgeRating property is set</returns>
+        public Boolean IsSetESRBAgeRating()
+        {
+            return  this.ESRBAgeRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ExternalDisplaySupportDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ExternalDisplaySupportDescription")]
+        public String ExternalDisplaySupportDescription
+        {
+            get { return this.externalDisplaySupportDescriptionField ; }
+            set { this.externalDisplaySupportDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ExternalDisplaySupportDescription property
+        /// </summary>
+        /// <param name="externalDisplaySupportDescription">ExternalDisplaySupportDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithExternalDisplaySupportDescription(String externalDisplaySupportDescription)
+        {
+            this.externalDisplaySupportDescriptionField = externalDisplaySupportDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ExternalDisplaySupportDescription property is set
+        /// </summary>
+        /// <returns>true if ExternalDisplaySupportDescription property is set</returns>
+        public Boolean IsSetExternalDisplaySupportDescription()
+        {
+            return  this.externalDisplaySupportDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FabricType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FabricType")]
+        public String FabricType
+        {
+            get { return this.fabricTypeField ; }
+            set { this.fabricTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FabricType property
+        /// </summary>
+        /// <param name="fabricType">FabricType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFabricType(String fabricType)
+        {
+            this.fabricTypeField = fabricType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FabricType property is set
+        /// </summary>
+        /// <returns>true if FabricType property is set</returns>
+        public Boolean IsSetFabricType()
+        {
+            return  this.fabricTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FaxNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FaxNumber")]
+        public String FaxNumber
+        {
+            get { return this.faxNumberField ; }
+            set { this.faxNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FaxNumber property
+        /// </summary>
+        /// <param name="faxNumber">FaxNumber property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFaxNumber(String faxNumber)
+        {
+            this.faxNumberField = faxNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FaxNumber property is set
+        /// </summary>
+        /// <returns>true if FaxNumber property is set</returns>
+        public Boolean IsSetFaxNumber()
+        {
+            return  this.faxNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Feature property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Feature")]
+        public List<String> Feature
+        {
+            get
+            {
+                if (this.featureField == null)
+                {
+                    this.featureField = new List<String>();
+                }
+                return this.featureField;
+            }
+            set { this.featureField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Feature property
+        /// </summary>
+        /// <param name="list">Feature property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFeature(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Feature.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Feature property is set
+        /// </summary>
+        /// <returns>true if Feature property is set</returns>
+        public Boolean IsSetFeature()
+        {
+            return (Feature.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FilmColorType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FilmColorType")]
+        public String FilmColorType
+        {
+            get { return this.filmColorTypeField ; }
+            set { this.filmColorTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FilmColorType property
+        /// </summary>
+        /// <param name="filmColorType">FilmColorType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFilmColorType(String filmColorType)
+        {
+            this.filmColorTypeField = filmColorType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FilmColorType property is set
+        /// </summary>
+        /// <returns>true if FilmColorType property is set</returns>
+        public Boolean IsSetFilmColorType()
+        {
+            return  this.filmColorTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstIssueLeadTime property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstIssueLeadTime")]
+        public StringWithUnits FirstIssueLeadTime
+        {
+            get { return this.firstIssueLeadTimeField ; }
+            set { this.firstIssueLeadTimeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstIssueLeadTime property
+        /// </summary>
+        /// <param name="firstIssueLeadTime">FirstIssueLeadTime property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFirstIssueLeadTime(StringWithUnits firstIssueLeadTime)
+        {
+            this.firstIssueLeadTimeField = firstIssueLeadTime;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstIssueLeadTime property is set
+        /// </summary>
+        /// <returns>true if FirstIssueLeadTime property is set</returns>
+        public Boolean IsSetFirstIssueLeadTime()
+        {
+            return this.firstIssueLeadTimeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FlavorName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FlavorName")]
+        public String FlavorName
+        {
+            get { return this.flavorNameField ; }
+            set { this.flavorNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FlavorName property
+        /// </summary>
+        /// <param name="flavorName">FlavorName property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFlavorName(String flavorName)
+        {
+            this.flavorNameField = flavorName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FlavorName property is set
+        /// </summary>
+        /// <returns>true if FlavorName property is set</returns>
+        public Boolean IsSetFlavorName()
+        {
+            return  this.flavorNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FloppyDiskDriveDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FloppyDiskDriveDescription")]
+        public String FloppyDiskDriveDescription
+        {
+            get { return this.floppyDiskDriveDescriptionField ; }
+            set { this.floppyDiskDriveDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FloppyDiskDriveDescription property
+        /// </summary>
+        /// <param name="floppyDiskDriveDescription">FloppyDiskDriveDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFloppyDiskDriveDescription(String floppyDiskDriveDescription)
+        {
+            this.floppyDiskDriveDescriptionField = floppyDiskDriveDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FloppyDiskDriveDescription property is set
+        /// </summary>
+        /// <returns>true if FloppyDiskDriveDescription property is set</returns>
+        public Boolean IsSetFloppyDiskDriveDescription()
+        {
+            return  this.floppyDiskDriveDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Format property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Format")]
+        public List<String> Format
+        {
+            get
+            {
+                if (this.formatField == null)
+                {
+                    this.formatField = new List<String>();
+                }
+                return this.formatField;
+            }
+            set { this.formatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Format property
+        /// </summary>
+        /// <param name="list">Format property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Format.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Format property is set
+        /// </summary>
+        /// <returns>true if Format property is set</returns>
+        public Boolean IsSetFormat()
+        {
+            return (Format.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FormFactor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FormFactor")]
+        public List<String> FormFactor
+        {
+            get
+            {
+                if (this.formFactorField == null)
+                {
+                    this.formFactorField = new List<String>();
+                }
+                return this.formFactorField;
+            }
+            set { this.formFactorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FormFactor property
+        /// </summary>
+        /// <param name="list">FormFactor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithFormFactor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                FormFactor.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of FormFactor property is set
+        /// </summary>
+        /// <returns>true if FormFactor property is set</returns>
+        public Boolean IsSetFormFactor()
+        {
+            return (FormFactor.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the GemType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GemType")]
+        public String GemType
+        {
+            get { return this.gemTypeField ; }
+            set { this.gemTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GemType property
+        /// </summary>
+        /// <param name="gemType">GemType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGemType(String gemType)
+        {
+            this.gemTypeField = gemType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GemType property is set
+        /// </summary>
+        /// <returns>true if GemType property is set</returns>
+        public Boolean IsSetGemType()
+        {
+            return  this.gemTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GemTypeSetElement property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GemTypeSetElement")]
+        public List<String> GemTypeSetElement
+        {
+            get
+            {
+                if (this.gemTypeSetElementField == null)
+                {
+                    this.gemTypeSetElementField = new List<String>();
+                }
+                return this.gemTypeSetElementField;
+            }
+            set { this.gemTypeSetElementField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GemTypeSetElement property
+        /// </summary>
+        /// <param name="list">GemTypeSetElement property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGemTypeSetElement(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                GemTypeSetElement.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of GemTypeSetElement property is set
+        /// </summary>
+        /// <returns>true if GemTypeSetElement property is set</returns>
+        public Boolean IsSetGemTypeSetElement()
+        {
+            return (GemTypeSetElement.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Gender property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Gender")]
+        public List<String> Gender
+        {
+            get
+            {
+                if (this.genderField == null)
+                {
+                    this.genderField = new List<String>();
+                }
+                return this.genderField;
+            }
+            set { this.genderField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Gender property
+        /// </summary>
+        /// <param name="list">Gender property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGender(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Gender.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Gender property is set
+        /// </summary>
+        /// <returns>true if Gender property is set</returns>
+        public Boolean IsSetGender()
+        {
+            return (Gender.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Genre property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Genre")]
+        public String Genre
+        {
+            get { return this.genreField ; }
+            set { this.genreField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Genre property
+        /// </summary>
+        /// <param name="genre">Genre property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGenre(String genre)
+        {
+            this.genreField = genre;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Genre property is set
+        /// </summary>
+        /// <returns>true if Genre property is set</returns>
+        public Boolean IsSetGenre()
+        {
+            return  this.genreField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GLProductGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GLProductGroup")]
+        public String GLProductGroup
+        {
+            get { return this.GLProductGroupField ; }
+            set { this.GLProductGroupField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GLProductGroup property
+        /// </summary>
+        /// <param name="GLProductGroup">GLProductGroup property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGLProductGroup(String GLProductGroup)
+        {
+            this.GLProductGroupField = GLProductGroup;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GLProductGroup property is set
+        /// </summary>
+        /// <returns>true if GLProductGroup property is set</returns>
+        public Boolean IsSetGLProductGroup()
+        {
+            return  this.GLProductGroupField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GolfClubFlex property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GolfClubFlex")]
+        public String GolfClubFlex
+        {
+            get { return this.golfClubFlexField ; }
+            set { this.golfClubFlexField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GolfClubFlex property
+        /// </summary>
+        /// <param name="golfClubFlex">GolfClubFlex property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGolfClubFlex(String golfClubFlex)
+        {
+            this.golfClubFlexField = golfClubFlex;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GolfClubFlex property is set
+        /// </summary>
+        /// <returns>true if GolfClubFlex property is set</returns>
+        public Boolean IsSetGolfClubFlex()
+        {
+            return  this.golfClubFlexField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GolfClubLoft property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GolfClubLoft")]
+        public String GolfClubLoft
+        {
+            get { return this.golfClubLoftField ; }
+            set { this.golfClubLoftField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GolfClubLoft property
+        /// </summary>
+        /// <param name="golfClubLoft">GolfClubLoft property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGolfClubLoft(String golfClubLoft)
+        {
+            this.golfClubLoftField = golfClubLoft;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GolfClubLoft property is set
+        /// </summary>
+        /// <returns>true if GolfClubLoft property is set</returns>
+        public Boolean IsSetGolfClubLoft()
+        {
+            return  this.golfClubLoftField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsCardInterface property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsCardInterface")]
+        public String GraphicsCardInterface
+        {
+            get { return this.graphicsCardInterfaceField ; }
+            set { this.graphicsCardInterfaceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsCardInterface property
+        /// </summary>
+        /// <param name="graphicsCardInterface">GraphicsCardInterface property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGraphicsCardInterface(String graphicsCardInterface)
+        {
+            this.graphicsCardInterfaceField = graphicsCardInterface;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsCardInterface property is set
+        /// </summary>
+        /// <returns>true if GraphicsCardInterface property is set</returns>
+        public Boolean IsSetGraphicsCardInterface()
+        {
+            return  this.graphicsCardInterfaceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsDescription")]
+        public String GraphicsDescription
+        {
+            get { return this.graphicsDescriptionField ; }
+            set { this.graphicsDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsDescription property
+        /// </summary>
+        /// <param name="graphicsDescription">GraphicsDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGraphicsDescription(String graphicsDescription)
+        {
+            this.graphicsDescriptionField = graphicsDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsDescription property is set
+        /// </summary>
+        /// <returns>true if GraphicsDescription property is set</returns>
+        public Boolean IsSetGraphicsDescription()
+        {
+            return  this.graphicsDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsMemorySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsMemorySize")]
+        public DecimalWithUnits GraphicsMemorySize
+        {
+            get { return this.graphicsMemorySizeField ; }
+            set { this.graphicsMemorySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsMemorySize property
+        /// </summary>
+        /// <param name="graphicsMemorySize">GraphicsMemorySize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGraphicsMemorySize(DecimalWithUnits graphicsMemorySize)
+        {
+            this.graphicsMemorySizeField = graphicsMemorySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsMemorySize property is set
+        /// </summary>
+        /// <returns>true if GraphicsMemorySize property is set</returns>
+        public Boolean IsSetGraphicsMemorySize()
+        {
+            return this.graphicsMemorySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the GuitarAttribute property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarAttribute")]
+        public String GuitarAttribute
+        {
+            get { return this.guitarAttributeField ; }
+            set { this.guitarAttributeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarAttribute property
+        /// </summary>
+        /// <param name="guitarAttribute">GuitarAttribute property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGuitarAttribute(String guitarAttribute)
+        {
+            this.guitarAttributeField = guitarAttribute;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarAttribute property is set
+        /// </summary>
+        /// <returns>true if GuitarAttribute property is set</returns>
+        public Boolean IsSetGuitarAttribute()
+        {
+            return  this.guitarAttributeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarBridgeSystem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarBridgeSystem")]
+        public String GuitarBridgeSystem
+        {
+            get { return this.guitarBridgeSystemField ; }
+            set { this.guitarBridgeSystemField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarBridgeSystem property
+        /// </summary>
+        /// <param name="guitarBridgeSystem">GuitarBridgeSystem property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGuitarBridgeSystem(String guitarBridgeSystem)
+        {
+            this.guitarBridgeSystemField = guitarBridgeSystem;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarBridgeSystem property is set
+        /// </summary>
+        /// <returns>true if GuitarBridgeSystem property is set</returns>
+        public Boolean IsSetGuitarBridgeSystem()
+        {
+            return  this.guitarBridgeSystemField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarPickThickness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarPickThickness")]
+        public String GuitarPickThickness
+        {
+            get { return this.guitarPickThicknessField ; }
+            set { this.guitarPickThicknessField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarPickThickness property
+        /// </summary>
+        /// <param name="guitarPickThickness">GuitarPickThickness property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGuitarPickThickness(String guitarPickThickness)
+        {
+            this.guitarPickThicknessField = guitarPickThickness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarPickThickness property is set
+        /// </summary>
+        /// <returns>true if GuitarPickThickness property is set</returns>
+        public Boolean IsSetGuitarPickThickness()
+        {
+            return  this.guitarPickThicknessField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarPickupConfiguration property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarPickupConfiguration")]
+        public String GuitarPickupConfiguration
+        {
+            get { return this.guitarPickupConfigurationField ; }
+            set { this.guitarPickupConfigurationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarPickupConfiguration property
+        /// </summary>
+        /// <param name="guitarPickupConfiguration">GuitarPickupConfiguration property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithGuitarPickupConfiguration(String guitarPickupConfiguration)
+        {
+            this.guitarPickupConfigurationField = guitarPickupConfiguration;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarPickupConfiguration property is set
+        /// </summary>
+        /// <returns>true if GuitarPickupConfiguration property is set</returns>
+        public Boolean IsSetGuitarPickupConfiguration()
+        {
+            return  this.guitarPickupConfigurationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HandOrientation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HandOrientation")]
+        public String HandOrientation
+        {
+            get { return this.handOrientationField ; }
+            set { this.handOrientationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HandOrientation property
+        /// </summary>
+        /// <param name="handOrientation">HandOrientation property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHandOrientation(String handOrientation)
+        {
+            this.handOrientationField = handOrientation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HandOrientation property is set
+        /// </summary>
+        /// <returns>true if HandOrientation property is set</returns>
+        public Boolean IsSetHandOrientation()
+        {
+            return  this.handOrientationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HardDiskCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardDiskCount")]
+        public Decimal HardDiskCount
+        {
+            get { return this.hardDiskCountField.GetValueOrDefault() ; }
+            set { this.hardDiskCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardDiskCount property
+        /// </summary>
+        /// <param name="hardDiskCount">HardDiskCount property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHardDiskCount(Decimal hardDiskCount)
+        {
+            this.hardDiskCountField = hardDiskCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardDiskCount property is set
+        /// </summary>
+        /// <returns>true if HardDiskCount property is set</returns>
+        public Boolean IsSetHardDiskCount()
+        {
+            return  this.hardDiskCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HardDiskSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardDiskSize")]
+        public DecimalWithUnits HardDiskSize
+        {
+            get { return this.hardDiskSizeField ; }
+            set { this.hardDiskSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardDiskSize property
+        /// </summary>
+        /// <param name="hardDiskSize">HardDiskSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHardDiskSize(DecimalWithUnits hardDiskSize)
+        {
+            this.hardDiskSizeField = hardDiskSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardDiskSize property is set
+        /// </summary>
+        /// <returns>true if HardDiskSize property is set</returns>
+        public Boolean IsSetHardDiskSize()
+        {
+            return this.hardDiskSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HardDiskInterface property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardDiskInterface")]
+        public String HardDiskInterface
+        {
+            get { return this.hardDiskInterfaceField ; }
+            set { this.hardDiskInterfaceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardDiskInterface property
+        /// </summary>
+        /// <param name="hardDiskInterface">HardDiskInterface property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHardDiskInterface(String hardDiskInterface)
+        {
+            this.hardDiskInterfaceField = hardDiskInterface;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardDiskInterface property is set
+        /// </summary>
+        /// <returns>true if HardDiskInterface property is set</returns>
+        public Boolean IsSetHardDiskInterface()
+        {
+            return  this.hardDiskInterfaceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HardwarePlatform property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardwarePlatform")]
+        public String HardwarePlatform
+        {
+            get { return this.hardwarePlatformField ; }
+            set { this.hardwarePlatformField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardwarePlatform property
+        /// </summary>
+        /// <param name="hardwarePlatform">HardwarePlatform property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHardwarePlatform(String hardwarePlatform)
+        {
+            this.hardwarePlatformField = hardwarePlatform;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardwarePlatform property is set
+        /// </summary>
+        /// <returns>true if HardwarePlatform property is set</returns>
+        public Boolean IsSetHardwarePlatform()
+        {
+            return  this.hardwarePlatformField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasAutoFocus property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasAutoFocus")]
+        public Boolean HasAutoFocus
+        {
+            get { return this.hasAutoFocusField.GetValueOrDefault() ; }
+            set { this.hasAutoFocusField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasAutoFocus property
+        /// </summary>
+        /// <param name="hasAutoFocus">HasAutoFocus property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasAutoFocus(Boolean hasAutoFocus)
+        {
+            this.hasAutoFocusField = hasAutoFocus;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasAutoFocus property is set
+        /// </summary>
+        /// <returns>true if HasAutoFocus property is set</returns>
+        public Boolean IsSetHasAutoFocus()
+        {
+            return  this.hasAutoFocusField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasBurstMode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasBurstMode")]
+        public Boolean HasBurstMode
+        {
+            get { return this.hasBurstModeField.GetValueOrDefault() ; }
+            set { this.hasBurstModeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasBurstMode property
+        /// </summary>
+        /// <param name="hasBurstMode">HasBurstMode property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasBurstMode(Boolean hasBurstMode)
+        {
+            this.hasBurstModeField = hasBurstMode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasBurstMode property is set
+        /// </summary>
+        /// <returns>true if HasBurstMode property is set</returns>
+        public Boolean IsSetHasBurstMode()
+        {
+            return  this.hasBurstModeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasInCameraEditing property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasInCameraEditing")]
+        public Boolean HasInCameraEditing
+        {
+            get { return this.hasInCameraEditingField.GetValueOrDefault() ; }
+            set { this.hasInCameraEditingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasInCameraEditing property
+        /// </summary>
+        /// <param name="hasInCameraEditing">HasInCameraEditing property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasInCameraEditing(Boolean hasInCameraEditing)
+        {
+            this.hasInCameraEditingField = hasInCameraEditing;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasInCameraEditing property is set
+        /// </summary>
+        /// <returns>true if HasInCameraEditing property is set</returns>
+        public Boolean IsSetHasInCameraEditing()
+        {
+            return  this.hasInCameraEditingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasRedEyeReduction property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasRedEyeReduction")]
+        public Boolean HasRedEyeReduction
+        {
+            get { return this.hasRedEyeReductionField.GetValueOrDefault() ; }
+            set { this.hasRedEyeReductionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasRedEyeReduction property
+        /// </summary>
+        /// <param name="hasRedEyeReduction">HasRedEyeReduction property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasRedEyeReduction(Boolean hasRedEyeReduction)
+        {
+            this.hasRedEyeReductionField = hasRedEyeReduction;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasRedEyeReduction property is set
+        /// </summary>
+        /// <returns>true if HasRedEyeReduction property is set</returns>
+        public Boolean IsSetHasRedEyeReduction()
+        {
+            return  this.hasRedEyeReductionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasSelfTimer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasSelfTimer")]
+        public Boolean HasSelfTimer
+        {
+            get { return this.hasSelfTimerField.GetValueOrDefault() ; }
+            set { this.hasSelfTimerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasSelfTimer property
+        /// </summary>
+        /// <param name="hasSelfTimer">HasSelfTimer property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasSelfTimer(Boolean hasSelfTimer)
+        {
+            this.hasSelfTimerField = hasSelfTimer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasSelfTimer property is set
+        /// </summary>
+        /// <returns>true if HasSelfTimer property is set</returns>
+        public Boolean IsSetHasSelfTimer()
+        {
+            return  this.hasSelfTimerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasTripodMount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasTripodMount")]
+        public Boolean HasTripodMount
+        {
+            get { return this.hasTripodMountField.GetValueOrDefault() ; }
+            set { this.hasTripodMountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasTripodMount property
+        /// </summary>
+        /// <param name="hasTripodMount">HasTripodMount property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasTripodMount(Boolean hasTripodMount)
+        {
+            this.hasTripodMountField = hasTripodMount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasTripodMount property is set
+        /// </summary>
+        /// <returns>true if HasTripodMount property is set</returns>
+        public Boolean IsSetHasTripodMount()
+        {
+            return  this.hasTripodMountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasVideoOut property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasVideoOut")]
+        public Boolean HasVideoOut
+        {
+            get { return this.hasVideoOutField.GetValueOrDefault() ; }
+            set { this.hasVideoOutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasVideoOut property
+        /// </summary>
+        /// <param name="hasVideoOut">HasVideoOut property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasVideoOut(Boolean hasVideoOut)
+        {
+            this.hasVideoOutField = hasVideoOut;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasVideoOut property is set
+        /// </summary>
+        /// <returns>true if HasVideoOut property is set</returns>
+        public Boolean IsSetHasVideoOut()
+        {
+            return  this.hasVideoOutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasViewfinder property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasViewfinder")]
+        public Boolean HasViewfinder
+        {
+            get { return this.hasViewfinderField.GetValueOrDefault() ; }
+            set { this.hasViewfinderField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasViewfinder property
+        /// </summary>
+        /// <param name="hasViewfinder">HasViewfinder property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHasViewfinder(Boolean hasViewfinder)
+        {
+            this.hasViewfinderField = hasViewfinder;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasViewfinder property is set
+        /// </summary>
+        /// <returns>true if HasViewfinder property is set</returns>
+        public Boolean IsSetHasViewfinder()
+        {
+            return  this.hasViewfinderField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HazardousMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HazardousMaterialType")]
+        public String HazardousMaterialType
+        {
+            get { return this.hazardousMaterialTypeField ; }
+            set { this.hazardousMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HazardousMaterialType property
+        /// </summary>
+        /// <param name="hazardousMaterialType">HazardousMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHazardousMaterialType(String hazardousMaterialType)
+        {
+            this.hazardousMaterialTypeField = hazardousMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HazardousMaterialType property is set
+        /// </summary>
+        /// <returns>true if HazardousMaterialType property is set</returns>
+        public Boolean IsSetHazardousMaterialType()
+        {
+            return  this.hazardousMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HoursOfOperation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HoursOfOperation")]
+        public String HoursOfOperation
+        {
+            get { return this.hoursOfOperationField ; }
+            set { this.hoursOfOperationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HoursOfOperation property
+        /// </summary>
+        /// <param name="hoursOfOperation">HoursOfOperation property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithHoursOfOperation(String hoursOfOperation)
+        {
+            this.hoursOfOperationField = hoursOfOperation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HoursOfOperation property is set
+        /// </summary>
+        /// <returns>true if HoursOfOperation property is set</returns>
+        public Boolean IsSetHoursOfOperation()
+        {
+            return  this.hoursOfOperationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IncludedSoftware property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IncludedSoftware")]
+        public String IncludedSoftware
+        {
+            get { return this.includedSoftwareField ; }
+            set { this.includedSoftwareField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IncludedSoftware property
+        /// </summary>
+        /// <param name="includedSoftware">IncludedSoftware property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIncludedSoftware(String includedSoftware)
+        {
+            this.includedSoftwareField = includedSoftware;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IncludedSoftware property is set
+        /// </summary>
+        /// <returns>true if IncludedSoftware property is set</returns>
+        public Boolean IsSetIncludedSoftware()
+        {
+            return  this.includedSoftwareField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IncludesMp3Player property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IncludesMp3Player")]
+        public Boolean IncludesMp3Player
+        {
+            get { return this.includesMp3PlayerField.GetValueOrDefault() ; }
+            set { this.includesMp3PlayerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IncludesMp3Player property
+        /// </summary>
+        /// <param name="includesMp3Player">IncludesMp3Player property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIncludesMp3Player(Boolean includesMp3Player)
+        {
+            this.includesMp3PlayerField = includesMp3Player;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IncludesMp3Player property is set
+        /// </summary>
+        /// <returns>true if IncludesMp3Player property is set</returns>
+        public Boolean IsSetIncludesMp3Player()
+        {
+            return  this.includesMp3PlayerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Ingredients property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Ingredients")]
+        public String Ingredients
+        {
+            get { return this.ingredientsField ; }
+            set { this.ingredientsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Ingredients property
+        /// </summary>
+        /// <param name="ingredients">Ingredients property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIngredients(String ingredients)
+        {
+            this.ingredientsField = ingredients;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Ingredients property is set
+        /// </summary>
+        /// <returns>true if Ingredients property is set</returns>
+        public Boolean IsSetIngredients()
+        {
+            return  this.ingredientsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IngredientsSetElement property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IngredientsSetElement")]
+        public List<String> IngredientsSetElement
+        {
+            get
+            {
+                if (this.ingredientsSetElementField == null)
+                {
+                    this.ingredientsSetElementField = new List<String>();
+                }
+                return this.ingredientsSetElementField;
+            }
+            set { this.ingredientsSetElementField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IngredientsSetElement property
+        /// </summary>
+        /// <param name="list">IngredientsSetElement property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIngredientsSetElement(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                IngredientsSetElement.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of IngredientsSetElement property is set
+        /// </summary>
+        /// <returns>true if IngredientsSetElement property is set</returns>
+        public Boolean IsSetIngredientsSetElement()
+        {
+            return (IngredientsSetElement.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the InstrumentKey property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "InstrumentKey")]
+        public String InstrumentKey
+        {
+            get { return this.instrumentKeyField ; }
+            set { this.instrumentKeyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the InstrumentKey property
+        /// </summary>
+        /// <param name="instrumentKey">InstrumentKey property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithInstrumentKey(String instrumentKey)
+        {
+            this.instrumentKeyField = instrumentKey;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if InstrumentKey property is set
+        /// </summary>
+        /// <returns>true if InstrumentKey property is set</returns>
+        public Boolean IsSetInstrumentKey()
+        {
+            return  this.instrumentKeyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Interest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Interest")]
+        public List<String> Interest
+        {
+            get
+            {
+                if (this.interestField == null)
+                {
+                    this.interestField = new List<String>();
+                }
+                return this.interestField;
+            }
+            set { this.interestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Interest property
+        /// </summary>
+        /// <param name="list">Interest property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithInterest(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Interest.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Interest property is set
+        /// </summary>
+        /// <returns>true if Interest property is set</returns>
+        public Boolean IsSetInterest()
+        {
+            return (Interest.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the IsAdultProduct property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsAdultProduct")]
+        public Boolean IsAdultProduct
+        {
+            get { return this.isAdultProductField.GetValueOrDefault() ; }
+            set { this.isAdultProductField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsAdultProduct property
+        /// </summary>
+        /// <param name="isAdultProduct">IsAdultProduct property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsAdultProduct(Boolean isAdultProduct)
+        {
+            this.isAdultProductField = isAdultProduct;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsAdultProduct property is set
+        /// </summary>
+        /// <returns>true if IsAdultProduct property is set</returns>
+        public Boolean IsSetIsAdultProduct()
+        {
+            return  this.isAdultProductField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsAutographed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsAutographed")]
+        public Boolean IsAutographed
+        {
+            get { return this.isAutographedField.GetValueOrDefault() ; }
+            set { this.isAutographedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsAutographed property
+        /// </summary>
+        /// <param name="isAutographed">IsAutographed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsAutographed(Boolean isAutographed)
+        {
+            this.isAutographedField = isAutographed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsAutographed property is set
+        /// </summary>
+        /// <returns>true if IsAutographed property is set</returns>
+        public Boolean IsSetIsAutographed()
+        {
+            return  this.isAutographedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISBN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISBN")]
+        public String ISBN
+        {
+            get { return this.ISBNField ; }
+            set { this.ISBNField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISBN property
+        /// </summary>
+        /// <param name="ISBN">ISBN property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithISBN(String ISBN)
+        {
+            this.ISBNField = ISBN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISBN property is set
+        /// </summary>
+        /// <returns>true if ISBN property is set</returns>
+        public Boolean IsSetISBN()
+        {
+            return  this.ISBNField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsFragile property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsFragile")]
+        public Boolean IsFragile
+        {
+            get { return this.isFragileField.GetValueOrDefault() ; }
+            set { this.isFragileField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsFragile property
+        /// </summary>
+        /// <param name="isFragile">IsFragile property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsFragile(Boolean isFragile)
+        {
+            this.isFragileField = isFragile;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsFragile property is set
+        /// </summary>
+        /// <returns>true if IsFragile property is set</returns>
+        public Boolean IsSetIsFragile()
+        {
+            return  this.isFragileField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsLabCreated property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsLabCreated")]
+        public Boolean IsLabCreated
+        {
+            get { return this.isLabCreatedField.GetValueOrDefault() ; }
+            set { this.isLabCreatedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsLabCreated property
+        /// </summary>
+        /// <param name="isLabCreated">IsLabCreated property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsLabCreated(Boolean isLabCreated)
+        {
+            this.isLabCreatedField = isLabCreated;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsLabCreated property is set
+        /// </summary>
+        /// <returns>true if IsLabCreated property is set</returns>
+        public Boolean IsSetIsLabCreated()
+        {
+            return  this.isLabCreatedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsMemorabilia property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsMemorabilia")]
+        public Boolean IsMemorabilia
+        {
+            get { return this.isMemorabiliaField.GetValueOrDefault() ; }
+            set { this.isMemorabiliaField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsMemorabilia property
+        /// </summary>
+        /// <param name="isMemorabilia">IsMemorabilia property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsMemorabilia(Boolean isMemorabilia)
+        {
+            this.isMemorabiliaField = isMemorabilia;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsMemorabilia property is set
+        /// </summary>
+        /// <returns>true if IsMemorabilia property is set</returns>
+        public Boolean IsSetIsMemorabilia()
+        {
+            return  this.isMemorabiliaField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISOEquivalent property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISOEquivalent")]
+        public NonNegativeIntegerWithUnits ISOEquivalent
+        {
+            get { return this.ISOEquivalentField ; }
+            set { this.ISOEquivalentField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISOEquivalent property
+        /// </summary>
+        /// <param name="ISOEquivalent">ISOEquivalent property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithISOEquivalent(NonNegativeIntegerWithUnits ISOEquivalent)
+        {
+            this.ISOEquivalentField = ISOEquivalent;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISOEquivalent property is set
+        /// </summary>
+        /// <returns>true if ISOEquivalent property is set</returns>
+        public Boolean IsSetISOEquivalent()
+        {
+            return this.ISOEquivalentField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the IsPreannounce property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsPreannounce")]
+        public Boolean IsPreannounce
+        {
+            get { return this.isPreannounceField.GetValueOrDefault() ; }
+            set { this.isPreannounceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsPreannounce property
+        /// </summary>
+        /// <param name="isPreannounce">IsPreannounce property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIsPreannounce(Boolean isPreannounce)
+        {
+            this.isPreannounceField = isPreannounce;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsPreannounce property is set
+        /// </summary>
+        /// <returns>true if IsPreannounce property is set</returns>
+        public Boolean IsSetIsPreannounce()
+        {
+            return  this.isPreannounceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IssuesPerYear property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IssuesPerYear")]
+        public String IssuesPerYear
+        {
+            get { return this.issuesPerYearField ; }
+            set { this.issuesPerYearField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IssuesPerYear property
+        /// </summary>
+        /// <param name="issuesPerYear">IssuesPerYear property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithIssuesPerYear(String issuesPerYear)
+        {
+            this.issuesPerYearField = issuesPerYear;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IssuesPerYear property is set
+        /// </summary>
+        /// <returns>true if IssuesPerYear property is set</returns>
+        public Boolean IsSetIssuesPerYear()
+        {
+            return  this.issuesPerYearField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemDimensions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemDimensions")]
+        public ItemDimensions ItemDimensions
+        {
+            get { return this.itemDimensionsField ; }
+            set { this.itemDimensionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemDimensions property
+        /// </summary>
+        /// <param name="itemDimensions">ItemDimensions property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithItemDimensions(ItemDimensions itemDimensions)
+        {
+            this.itemDimensionsField = itemDimensions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemDimensions property is set
+        /// </summary>
+        /// <returns>true if ItemDimensions property is set</returns>
+        public Boolean IsSetItemDimensions()
+        {
+            return this.itemDimensionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the KeyboardDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "KeyboardDescription")]
+        public String KeyboardDescription
+        {
+            get { return this.keyboardDescriptionField ; }
+            set { this.keyboardDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the KeyboardDescription property
+        /// </summary>
+        /// <param name="keyboardDescription">KeyboardDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithKeyboardDescription(String keyboardDescription)
+        {
+            this.keyboardDescriptionField = keyboardDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if KeyboardDescription property is set
+        /// </summary>
+        /// <returns>true if KeyboardDescription property is set</returns>
+        public Boolean IsSetKeyboardDescription()
+        {
+            return  this.keyboardDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Label property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Label")]
+        public String Label
+        {
+            get { return this.labelField ; }
+            set { this.labelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Label property
+        /// </summary>
+        /// <param name="label">Label property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLabel(String label)
+        {
+            this.labelField = label;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Label property is set
+        /// </summary>
+        /// <returns>true if Label property is set</returns>
+        public Boolean IsSetLabel()
+        {
+            return  this.labelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LanguageName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LanguageName")]
+        public List<String> LanguageName
+        {
+            get
+            {
+                if (this.languageNameField == null)
+                {
+                    this.languageNameField = new List<String>();
+                }
+                return this.languageNameField;
+            }
+            set { this.languageNameField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LanguageName property
+        /// </summary>
+        /// <param name="list">LanguageName property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLanguageName(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                LanguageName.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of LanguageName property is set
+        /// </summary>
+        /// <returns>true if LanguageName property is set</returns>
+        public Boolean IsSetLanguageName()
+        {
+            return (LanguageName.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Languages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Languages")]
+        public Languages Languages
+        {
+            get { return this.languagesField ; }
+            set { this.languagesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Languages property
+        /// </summary>
+        /// <param name="languages">Languages property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLanguages(Languages languages)
+        {
+            this.languagesField = languages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Languages property is set
+        /// </summary>
+        /// <returns>true if Languages property is set</returns>
+        public Boolean IsSetLanguages()
+        {
+            return this.languagesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LegalDisclaimer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LegalDisclaimer")]
+        public String LegalDisclaimer
+        {
+            get { return this.legalDisclaimerField ; }
+            set { this.legalDisclaimerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LegalDisclaimer property
+        /// </summary>
+        /// <param name="legalDisclaimer">LegalDisclaimer property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLegalDisclaimer(String legalDisclaimer)
+        {
+            this.legalDisclaimerField = legalDisclaimer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LegalDisclaimer property is set
+        /// </summary>
+        /// <returns>true if LegalDisclaimer property is set</returns>
+        public Boolean IsSetLegalDisclaimer()
+        {
+            return  this.legalDisclaimerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LensType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LensType")]
+        public String LensType
+        {
+            get { return this.lensTypeField ; }
+            set { this.lensTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LensType property
+        /// </summary>
+        /// <param name="lensType">LensType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLensType(String lensType)
+        {
+            this.lensTypeField = lensType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LensType property is set
+        /// </summary>
+        /// <returns>true if LensType property is set</returns>
+        public Boolean IsSetLensType()
+        {
+            return  this.lensTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LineVoltage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LineVoltage")]
+        public String LineVoltage
+        {
+            get { return this.lineVoltageField ; }
+            set { this.lineVoltageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LineVoltage property
+        /// </summary>
+        /// <param name="lineVoltage">LineVoltage property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithLineVoltage(String lineVoltage)
+        {
+            this.lineVoltageField = lineVoltage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LineVoltage property is set
+        /// </summary>
+        /// <returns>true if LineVoltage property is set</returns>
+        public Boolean IsSetLineVoltage()
+        {
+            return  this.lineVoltageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListPrice")]
+        public Price ListPrice
+        {
+            get { return this.listPriceField ; }
+            set { this.listPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListPrice property
+        /// </summary>
+        /// <param name="listPrice">ListPrice property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithListPrice(Price listPrice)
+        {
+            this.listPriceField = listPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListPrice property is set
+        /// </summary>
+        /// <returns>true if ListPrice property is set</returns>
+        public Boolean IsSetListPrice()
+        {
+            return this.listPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MacroFocusRange property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MacroFocusRange")]
+        public String MacroFocusRange
+        {
+            get { return this.macroFocusRangeField ; }
+            set { this.macroFocusRangeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MacroFocusRange property
+        /// </summary>
+        /// <param name="macroFocusRange">MacroFocusRange property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMacroFocusRange(String macroFocusRange)
+        {
+            this.macroFocusRangeField = macroFocusRange;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MacroFocusRange property is set
+        /// </summary>
+        /// <returns>true if MacroFocusRange property is set</returns>
+        public Boolean IsSetMacroFocusRange()
+        {
+            return  this.macroFocusRangeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MagazineType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MagazineType")]
+        public String MagazineType
+        {
+            get { return this.magazineTypeField ; }
+            set { this.magazineTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MagazineType property
+        /// </summary>
+        /// <param name="magazineType">MagazineType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMagazineType(String magazineType)
+        {
+            this.magazineTypeField = magazineType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MagazineType property is set
+        /// </summary>
+        /// <returns>true if MagazineType property is set</returns>
+        public Boolean IsSetMagazineType()
+        {
+            return  this.magazineTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MalletHardness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MalletHardness")]
+        public String MalletHardness
+        {
+            get { return this.malletHardnessField ; }
+            set { this.malletHardnessField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MalletHardness property
+        /// </summary>
+        /// <param name="malletHardness">MalletHardness property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMalletHardness(String malletHardness)
+        {
+            this.malletHardnessField = malletHardness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MalletHardness property is set
+        /// </summary>
+        /// <returns>true if MalletHardness property is set</returns>
+        public Boolean IsSetMalletHardness()
+        {
+            return  this.malletHardnessField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Manufacturer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Manufacturer")]
+        public String Manufacturer
+        {
+            get { return this.manufacturerField ; }
+            set { this.manufacturerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Manufacturer property
+        /// </summary>
+        /// <param name="manufacturer">Manufacturer property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithManufacturer(String manufacturer)
+        {
+            this.manufacturerField = manufacturer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Manufacturer property is set
+        /// </summary>
+        /// <returns>true if Manufacturer property is set</returns>
+        public Boolean IsSetManufacturer()
+        {
+            return  this.manufacturerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerLaborWarrantyDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerLaborWarrantyDescription")]
+        public String ManufacturerLaborWarrantyDescription
+        {
+            get { return this.manufacturerLaborWarrantyDescriptionField ; }
+            set { this.manufacturerLaborWarrantyDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerLaborWarrantyDescription property
+        /// </summary>
+        /// <param name="manufacturerLaborWarrantyDescription">ManufacturerLaborWarrantyDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithManufacturerLaborWarrantyDescription(String manufacturerLaborWarrantyDescription)
+        {
+            this.manufacturerLaborWarrantyDescriptionField = manufacturerLaborWarrantyDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerLaborWarrantyDescription property is set
+        /// </summary>
+        /// <returns>true if ManufacturerLaborWarrantyDescription property is set</returns>
+        public Boolean IsSetManufacturerLaborWarrantyDescription()
+        {
+            return  this.manufacturerLaborWarrantyDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerMaximumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerMaximumAge")]
+        public DecimalWithUnits ManufacturerMaximumAge
+        {
+            get { return this.manufacturerMaximumAgeField ; }
+            set { this.manufacturerMaximumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerMaximumAge property
+        /// </summary>
+        /// <param name="manufacturerMaximumAge">ManufacturerMaximumAge property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithManufacturerMaximumAge(DecimalWithUnits manufacturerMaximumAge)
+        {
+            this.manufacturerMaximumAgeField = manufacturerMaximumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerMaximumAge property is set
+        /// </summary>
+        /// <returns>true if ManufacturerMaximumAge property is set</returns>
+        public Boolean IsSetManufacturerMaximumAge()
+        {
+            return this.manufacturerMaximumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerMinimumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerMinimumAge")]
+        public DecimalWithUnits ManufacturerMinimumAge
+        {
+            get { return this.manufacturerMinimumAgeField ; }
+            set { this.manufacturerMinimumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerMinimumAge property
+        /// </summary>
+        /// <param name="manufacturerMinimumAge">ManufacturerMinimumAge property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithManufacturerMinimumAge(DecimalWithUnits manufacturerMinimumAge)
+        {
+            this.manufacturerMinimumAgeField = manufacturerMinimumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerMinimumAge property is set
+        /// </summary>
+        /// <returns>true if ManufacturerMinimumAge property is set</returns>
+        public Boolean IsSetManufacturerMinimumAge()
+        {
+            return this.manufacturerMinimumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerPartsWarrantyDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerPartsWarrantyDescription")]
+        public String ManufacturerPartsWarrantyDescription
+        {
+            get { return this.manufacturerPartsWarrantyDescriptionField ; }
+            set { this.manufacturerPartsWarrantyDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerPartsWarrantyDescription property
+        /// </summary>
+        /// <param name="manufacturerPartsWarrantyDescription">ManufacturerPartsWarrantyDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithManufacturerPartsWarrantyDescription(String manufacturerPartsWarrantyDescription)
+        {
+            this.manufacturerPartsWarrantyDescriptionField = manufacturerPartsWarrantyDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerPartsWarrantyDescription property is set
+        /// </summary>
+        /// <returns>true if ManufacturerPartsWarrantyDescription property is set</returns>
+        public Boolean IsSetManufacturerPartsWarrantyDescription()
+        {
+            return  this.manufacturerPartsWarrantyDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaterialType")]
+        public String MaterialType
+        {
+            get { return this.materialTypeField ; }
+            set { this.materialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaterialType property
+        /// </summary>
+        /// <param name="materialType">MaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaterialType(String materialType)
+        {
+            this.materialTypeField = materialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaterialType property is set
+        /// </summary>
+        /// <returns>true if MaterialType property is set</returns>
+        public Boolean IsSetMaterialType()
+        {
+            return  this.materialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaterialTypeSetElement property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaterialTypeSetElement")]
+        public List<String> MaterialTypeSetElement
+        {
+            get
+            {
+                if (this.materialTypeSetElementField == null)
+                {
+                    this.materialTypeSetElementField = new List<String>();
+                }
+                return this.materialTypeSetElementField;
+            }
+            set { this.materialTypeSetElementField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaterialTypeSetElement property
+        /// </summary>
+        /// <param name="list">MaterialTypeSetElement property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaterialTypeSetElement(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                MaterialTypeSetElement.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of MaterialTypeSetElement property is set
+        /// </summary>
+        /// <returns>true if MaterialTypeSetElement property is set</returns>
+        public Boolean IsSetMaterialTypeSetElement()
+        {
+            return (MaterialTypeSetElement.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumAperture property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumAperture")]
+        public DecimalWithUnits MaximumAperture
+        {
+            get { return this.maximumApertureField ; }
+            set { this.maximumApertureField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumAperture property
+        /// </summary>
+        /// <param name="maximumAperture">MaximumAperture property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumAperture(DecimalWithUnits maximumAperture)
+        {
+            this.maximumApertureField = maximumAperture;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumAperture property is set
+        /// </summary>
+        /// <returns>true if MaximumAperture property is set</returns>
+        public Boolean IsSetMaximumAperture()
+        {
+            return this.maximumApertureField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumColorDepth property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumColorDepth")]
+        public String MaximumColorDepth
+        {
+            get { return this.maximumColorDepthField ; }
+            set { this.maximumColorDepthField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumColorDepth property
+        /// </summary>
+        /// <param name="maximumColorDepth">MaximumColorDepth property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumColorDepth(String maximumColorDepth)
+        {
+            this.maximumColorDepthField = maximumColorDepth;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumColorDepth property is set
+        /// </summary>
+        /// <returns>true if MaximumColorDepth property is set</returns>
+        public Boolean IsSetMaximumColorDepth()
+        {
+            return  this.maximumColorDepthField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumFocalLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumFocalLength")]
+        public DecimalWithUnits MaximumFocalLength
+        {
+            get { return this.maximumFocalLengthField ; }
+            set { this.maximumFocalLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumFocalLength property
+        /// </summary>
+        /// <param name="maximumFocalLength">MaximumFocalLength property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumFocalLength(DecimalWithUnits maximumFocalLength)
+        {
+            this.maximumFocalLengthField = maximumFocalLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumFocalLength property is set
+        /// </summary>
+        /// <returns>true if MaximumFocalLength property is set</returns>
+        public Boolean IsSetMaximumFocalLength()
+        {
+            return this.maximumFocalLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumHighResolutionImages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumHighResolutionImages")]
+        public NonNegativeIntegerWithUnits MaximumHighResolutionImages
+        {
+            get { return this.maximumHighResolutionImagesField ; }
+            set { this.maximumHighResolutionImagesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumHighResolutionImages property
+        /// </summary>
+        /// <param name="maximumHighResolutionImages">MaximumHighResolutionImages property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumHighResolutionImages(NonNegativeIntegerWithUnits maximumHighResolutionImages)
+        {
+            this.maximumHighResolutionImagesField = maximumHighResolutionImages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumHighResolutionImages property is set
+        /// </summary>
+        /// <returns>true if MaximumHighResolutionImages property is set</returns>
+        public Boolean IsSetMaximumHighResolutionImages()
+        {
+            return this.maximumHighResolutionImagesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumHorizontalResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumHorizontalResolution")]
+        public NonNegativeIntegerWithUnits MaximumHorizontalResolution
+        {
+            get { return this.maximumHorizontalResolutionField ; }
+            set { this.maximumHorizontalResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumHorizontalResolution property
+        /// </summary>
+        /// <param name="maximumHorizontalResolution">MaximumHorizontalResolution property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumHorizontalResolution(NonNegativeIntegerWithUnits maximumHorizontalResolution)
+        {
+            this.maximumHorizontalResolutionField = maximumHorizontalResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumHorizontalResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumHorizontalResolution property is set</returns>
+        public Boolean IsSetMaximumHorizontalResolution()
+        {
+            return this.maximumHorizontalResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumLowResolutionImages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumLowResolutionImages")]
+        public String MaximumLowResolutionImages
+        {
+            get { return this.maximumLowResolutionImagesField ; }
+            set { this.maximumLowResolutionImagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumLowResolutionImages property
+        /// </summary>
+        /// <param name="maximumLowResolutionImages">MaximumLowResolutionImages property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumLowResolutionImages(String maximumLowResolutionImages)
+        {
+            this.maximumLowResolutionImagesField = maximumLowResolutionImages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumLowResolutionImages property is set
+        /// </summary>
+        /// <returns>true if MaximumLowResolutionImages property is set</returns>
+        public Boolean IsSetMaximumLowResolutionImages()
+        {
+            return  this.maximumLowResolutionImagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumResolution")]
+        public DecimalWithUnits MaximumResolution
+        {
+            get { return this.maximumResolutionField ; }
+            set { this.maximumResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumResolution property
+        /// </summary>
+        /// <param name="maximumResolution">MaximumResolution property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumResolution(DecimalWithUnits maximumResolution)
+        {
+            this.maximumResolutionField = maximumResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumResolution property is set</returns>
+        public Boolean IsSetMaximumResolution()
+        {
+            return this.maximumResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumShutterSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumShutterSpeed")]
+        public DecimalWithUnits MaximumShutterSpeed
+        {
+            get { return this.maximumShutterSpeedField ; }
+            set { this.maximumShutterSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumShutterSpeed property
+        /// </summary>
+        /// <param name="maximumShutterSpeed">MaximumShutterSpeed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumShutterSpeed(DecimalWithUnits maximumShutterSpeed)
+        {
+            this.maximumShutterSpeedField = maximumShutterSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumShutterSpeed property is set
+        /// </summary>
+        /// <returns>true if MaximumShutterSpeed property is set</returns>
+        public Boolean IsSetMaximumShutterSpeed()
+        {
+            return this.maximumShutterSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumVerticalResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumVerticalResolution")]
+        public NonNegativeIntegerWithUnits MaximumVerticalResolution
+        {
+            get { return this.maximumVerticalResolutionField ; }
+            set { this.maximumVerticalResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumVerticalResolution property
+        /// </summary>
+        /// <param name="maximumVerticalResolution">MaximumVerticalResolution property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumVerticalResolution(NonNegativeIntegerWithUnits maximumVerticalResolution)
+        {
+            this.maximumVerticalResolutionField = maximumVerticalResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumVerticalResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumVerticalResolution property is set</returns>
+        public Boolean IsSetMaximumVerticalResolution()
+        {
+            return this.maximumVerticalResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumWeightRecommendation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumWeightRecommendation")]
+        public DecimalWithUnits MaximumWeightRecommendation
+        {
+            get { return this.maximumWeightRecommendationField ; }
+            set { this.maximumWeightRecommendationField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumWeightRecommendation property
+        /// </summary>
+        /// <param name="maximumWeightRecommendation">MaximumWeightRecommendation property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMaximumWeightRecommendation(DecimalWithUnits maximumWeightRecommendation)
+        {
+            this.maximumWeightRecommendationField = maximumWeightRecommendation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumWeightRecommendation property is set
+        /// </summary>
+        /// <returns>true if MaximumWeightRecommendation property is set</returns>
+        public Boolean IsSetMaximumWeightRecommendation()
+        {
+            return this.maximumWeightRecommendationField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MediaType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MediaType")]
+        public String MediaType
+        {
+            get { return this.mediaTypeField ; }
+            set { this.mediaTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MediaType property
+        /// </summary>
+        /// <param name="mediaType">MediaType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMediaType(String mediaType)
+        {
+            this.mediaTypeField = mediaType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MediaType property is set
+        /// </summary>
+        /// <returns>true if MediaType property is set</returns>
+        public Boolean IsSetMediaType()
+        {
+            return  this.mediaTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MemorySlotsAvailable property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MemorySlotsAvailable")]
+        public String MemorySlotsAvailable
+        {
+            get { return this.memorySlotsAvailableField ; }
+            set { this.memorySlotsAvailableField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MemorySlotsAvailable property
+        /// </summary>
+        /// <param name="memorySlotsAvailable">MemorySlotsAvailable property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMemorySlotsAvailable(String memorySlotsAvailable)
+        {
+            this.memorySlotsAvailableField = memorySlotsAvailable;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MemorySlotsAvailable property is set
+        /// </summary>
+        /// <returns>true if MemorySlotsAvailable property is set</returns>
+        public Boolean IsSetMemorySlotsAvailable()
+        {
+            return  this.memorySlotsAvailableField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetalStamp property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetalStamp")]
+        public String MetalStamp
+        {
+            get { return this.metalStampField ; }
+            set { this.metalStampField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetalStamp property
+        /// </summary>
+        /// <param name="metalStamp">MetalStamp property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMetalStamp(String metalStamp)
+        {
+            this.metalStampField = metalStamp;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MetalStamp property is set
+        /// </summary>
+        /// <returns>true if MetalStamp property is set</returns>
+        public Boolean IsSetMetalStamp()
+        {
+            return  this.metalStampField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetalType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetalType")]
+        public String MetalType
+        {
+            get { return this.metalTypeField ; }
+            set { this.metalTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetalType property
+        /// </summary>
+        /// <param name="metalType">MetalType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMetalType(String metalType)
+        {
+            this.metalTypeField = metalType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MetalType property is set
+        /// </summary>
+        /// <returns>true if MetalType property is set</returns>
+        public Boolean IsSetMetalType()
+        {
+            return  this.metalTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MiniMovieDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MiniMovieDescription")]
+        public String MiniMovieDescription
+        {
+            get { return this.miniMovieDescriptionField ; }
+            set { this.miniMovieDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MiniMovieDescription property
+        /// </summary>
+        /// <param name="miniMovieDescription">MiniMovieDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMiniMovieDescription(String miniMovieDescription)
+        {
+            this.miniMovieDescriptionField = miniMovieDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MiniMovieDescription property is set
+        /// </summary>
+        /// <returns>true if MiniMovieDescription property is set</returns>
+        public Boolean IsSetMiniMovieDescription()
+        {
+            return  this.miniMovieDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MinimumFocalLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumFocalLength")]
+        public DecimalWithUnits MinimumFocalLength
+        {
+            get { return this.minimumFocalLengthField ; }
+            set { this.minimumFocalLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumFocalLength property
+        /// </summary>
+        /// <param name="minimumFocalLength">MinimumFocalLength property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMinimumFocalLength(DecimalWithUnits minimumFocalLength)
+        {
+            this.minimumFocalLengthField = minimumFocalLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumFocalLength property is set
+        /// </summary>
+        /// <returns>true if MinimumFocalLength property is set</returns>
+        public Boolean IsSetMinimumFocalLength()
+        {
+            return this.minimumFocalLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MinimumShutterSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumShutterSpeed")]
+        public DecimalWithUnits MinimumShutterSpeed
+        {
+            get { return this.minimumShutterSpeedField ; }
+            set { this.minimumShutterSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumShutterSpeed property
+        /// </summary>
+        /// <param name="minimumShutterSpeed">MinimumShutterSpeed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMinimumShutterSpeed(DecimalWithUnits minimumShutterSpeed)
+        {
+            this.minimumShutterSpeedField = minimumShutterSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumShutterSpeed property is set
+        /// </summary>
+        /// <returns>true if MinimumShutterSpeed property is set</returns>
+        public Boolean IsSetMinimumShutterSpeed()
+        {
+            return this.minimumShutterSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Model property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Model")]
+        public String Model
+        {
+            get { return this.modelField ; }
+            set { this.modelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Model property
+        /// </summary>
+        /// <param name="model">Model property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithModel(String model)
+        {
+            this.modelField = model;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Model property is set
+        /// </summary>
+        /// <returns>true if Model property is set</returns>
+        public Boolean IsSetModel()
+        {
+            return  this.modelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ModelYear property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ModelYear")]
+        public Decimal ModelYear
+        {
+            get { return this.modelYearField.GetValueOrDefault() ; }
+            set { this.modelYearField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ModelYear property
+        /// </summary>
+        /// <param name="modelYear">ModelYear property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithModelYear(Decimal modelYear)
+        {
+            this.modelYearField = modelYear;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ModelYear property is set
+        /// </summary>
+        /// <returns>true if ModelYear property is set</returns>
+        public Boolean IsSetModelYear()
+        {
+            return  this.modelYearField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ModemDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ModemDescription")]
+        public String ModemDescription
+        {
+            get { return this.modemDescriptionField ; }
+            set { this.modemDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ModemDescription property
+        /// </summary>
+        /// <param name="modemDescription">ModemDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithModemDescription(String modemDescription)
+        {
+            this.modemDescriptionField = modemDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ModemDescription property is set
+        /// </summary>
+        /// <returns>true if ModemDescription property is set</returns>
+        public Boolean IsSetModemDescription()
+        {
+            return  this.modemDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MonitorSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MonitorSize")]
+        public DecimalWithUnits MonitorSize
+        {
+            get { return this.monitorSizeField ; }
+            set { this.monitorSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MonitorSize property
+        /// </summary>
+        /// <param name="monitorSize">MonitorSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMonitorSize(DecimalWithUnits monitorSize)
+        {
+            this.monitorSizeField = monitorSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MonitorSize property is set
+        /// </summary>
+        /// <returns>true if MonitorSize property is set</returns>
+        public Boolean IsSetMonitorSize()
+        {
+            return this.monitorSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MonitorViewableDiagonalSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MonitorViewableDiagonalSize")]
+        public DecimalWithUnits MonitorViewableDiagonalSize
+        {
+            get { return this.monitorViewableDiagonalSizeField ; }
+            set { this.monitorViewableDiagonalSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MonitorViewableDiagonalSize property
+        /// </summary>
+        /// <param name="monitorViewableDiagonalSize">MonitorViewableDiagonalSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMonitorViewableDiagonalSize(DecimalWithUnits monitorViewableDiagonalSize)
+        {
+            this.monitorViewableDiagonalSizeField = monitorViewableDiagonalSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MonitorViewableDiagonalSize property is set
+        /// </summary>
+        /// <returns>true if MonitorViewableDiagonalSize property is set</returns>
+        public Boolean IsSetMonitorViewableDiagonalSize()
+        {
+            return this.monitorViewableDiagonalSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MouseDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MouseDescription")]
+        public String MouseDescription
+        {
+            get { return this.mouseDescriptionField ; }
+            set { this.mouseDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MouseDescription property
+        /// </summary>
+        /// <param name="mouseDescription">MouseDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMouseDescription(String mouseDescription)
+        {
+            this.mouseDescriptionField = mouseDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MouseDescription property is set
+        /// </summary>
+        /// <returns>true if MouseDescription property is set</returns>
+        public Boolean IsSetMouseDescription()
+        {
+            return  this.mouseDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MPN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MPN")]
+        public String MPN
+        {
+            get { return this.MPNField ; }
+            set { this.MPNField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MPN property
+        /// </summary>
+        /// <param name="MPN">MPN property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMPN(String MPN)
+        {
+            this.MPNField = MPN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MPN property is set
+        /// </summary>
+        /// <returns>true if MPN property is set</returns>
+        public Boolean IsSetMPN()
+        {
+            return  this.MPNField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MusicalStyle property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MusicalStyle")]
+        public String MusicalStyle
+        {
+            get { return this.musicalStyleField ; }
+            set { this.musicalStyleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MusicalStyle property
+        /// </summary>
+        /// <param name="musicalStyle">MusicalStyle property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithMusicalStyle(String musicalStyle)
+        {
+            this.musicalStyleField = musicalStyle;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MusicalStyle property is set
+        /// </summary>
+        /// <returns>true if MusicalStyle property is set</returns>
+        public Boolean IsSetMusicalStyle()
+        {
+            return  this.musicalStyleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NativeResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NativeResolution")]
+        public String NativeResolution
+        {
+            get { return this.nativeResolutionField ; }
+            set { this.nativeResolutionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NativeResolution property
+        /// </summary>
+        /// <param name="nativeResolution">NativeResolution property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNativeResolution(String nativeResolution)
+        {
+            this.nativeResolutionField = nativeResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NativeResolution property is set
+        /// </summary>
+        /// <returns>true if NativeResolution property is set</returns>
+        public Boolean IsSetNativeResolution()
+        {
+            return  this.nativeResolutionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Neighborhood property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Neighborhood")]
+        public String Neighborhood
+        {
+            get { return this.neighborhoodField ; }
+            set { this.neighborhoodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Neighborhood property
+        /// </summary>
+        /// <param name="neighborhood">Neighborhood property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNeighborhood(String neighborhood)
+        {
+            this.neighborhoodField = neighborhood;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Neighborhood property is set
+        /// </summary>
+        /// <returns>true if Neighborhood property is set</returns>
+        public Boolean IsSetNeighborhood()
+        {
+            return  this.neighborhoodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NetworkInterfaceDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NetworkInterfaceDescription")]
+        public String NetworkInterfaceDescription
+        {
+            get { return this.networkInterfaceDescriptionField ; }
+            set { this.networkInterfaceDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NetworkInterfaceDescription property
+        /// </summary>
+        /// <param name="networkInterfaceDescription">NetworkInterfaceDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNetworkInterfaceDescription(String networkInterfaceDescription)
+        {
+            this.networkInterfaceDescriptionField = networkInterfaceDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NetworkInterfaceDescription property is set
+        /// </summary>
+        /// <returns>true if NetworkInterfaceDescription property is set</returns>
+        public Boolean IsSetNetworkInterfaceDescription()
+        {
+            return  this.networkInterfaceDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NotebookDisplayTechnology property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NotebookDisplayTechnology")]
+        public String NotebookDisplayTechnology
+        {
+            get { return this.notebookDisplayTechnologyField ; }
+            set { this.notebookDisplayTechnologyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NotebookDisplayTechnology property
+        /// </summary>
+        /// <param name="notebookDisplayTechnology">NotebookDisplayTechnology property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNotebookDisplayTechnology(String notebookDisplayTechnology)
+        {
+            this.notebookDisplayTechnologyField = notebookDisplayTechnology;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NotebookDisplayTechnology property is set
+        /// </summary>
+        /// <returns>true if NotebookDisplayTechnology property is set</returns>
+        public Boolean IsSetNotebookDisplayTechnology()
+        {
+            return  this.notebookDisplayTechnologyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NotebookPointingDeviceDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NotebookPointingDeviceDescription")]
+        public String NotebookPointingDeviceDescription
+        {
+            get { return this.notebookPointingDeviceDescriptionField ; }
+            set { this.notebookPointingDeviceDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NotebookPointingDeviceDescription property
+        /// </summary>
+        /// <param name="notebookPointingDeviceDescription">NotebookPointingDeviceDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNotebookPointingDeviceDescription(String notebookPointingDeviceDescription)
+        {
+            this.notebookPointingDeviceDescriptionField = notebookPointingDeviceDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NotebookPointingDeviceDescription property is set
+        /// </summary>
+        /// <returns>true if NotebookPointingDeviceDescription property is set</returns>
+        public Boolean IsSetNotebookPointingDeviceDescription()
+        {
+            return  this.notebookPointingDeviceDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfDiscs property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfDiscs")]
+        public Decimal NumberOfDiscs
+        {
+            get { return this.numberOfDiscsField.GetValueOrDefault() ; }
+            set { this.numberOfDiscsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfDiscs property
+        /// </summary>
+        /// <param name="numberOfDiscs">NumberOfDiscs property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfDiscs(Decimal numberOfDiscs)
+        {
+            this.numberOfDiscsField = numberOfDiscs;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfDiscs property is set
+        /// </summary>
+        /// <returns>true if NumberOfDiscs property is set</returns>
+        public Boolean IsSetNumberOfDiscs()
+        {
+            return  this.numberOfDiscsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfIssues property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfIssues")]
+        public Decimal NumberOfIssues
+        {
+            get { return this.numberOfIssuesField.GetValueOrDefault() ; }
+            set { this.numberOfIssuesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfIssues property
+        /// </summary>
+        /// <param name="numberOfIssues">NumberOfIssues property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfIssues(Decimal numberOfIssues)
+        {
+            this.numberOfIssuesField = numberOfIssues;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfIssues property is set
+        /// </summary>
+        /// <returns>true if NumberOfIssues property is set</returns>
+        public Boolean IsSetNumberOfIssues()
+        {
+            return  this.numberOfIssuesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfItems")]
+        public Decimal NumberOfItems
+        {
+            get { return this.numberOfItemsField.GetValueOrDefault() ; }
+            set { this.numberOfItemsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfItems property
+        /// </summary>
+        /// <param name="numberOfItems">NumberOfItems property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfItems(Decimal numberOfItems)
+        {
+            this.numberOfItemsField = numberOfItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfItems property is set
+        /// </summary>
+        /// <returns>true if NumberOfItems property is set</returns>
+        public Boolean IsSetNumberOfItems()
+        {
+            return  this.numberOfItemsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfKeys property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfKeys")]
+        public Decimal NumberOfKeys
+        {
+            get { return this.numberOfKeysField.GetValueOrDefault() ; }
+            set { this.numberOfKeysField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfKeys property
+        /// </summary>
+        /// <param name="numberOfKeys">NumberOfKeys property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfKeys(Decimal numberOfKeys)
+        {
+            this.numberOfKeysField = numberOfKeys;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfKeys property is set
+        /// </summary>
+        /// <returns>true if NumberOfKeys property is set</returns>
+        public Boolean IsSetNumberOfKeys()
+        {
+            return  this.numberOfKeysField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfPages")]
+        public Decimal NumberOfPages
+        {
+            get { return this.numberOfPagesField.GetValueOrDefault() ; }
+            set { this.numberOfPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfPages property
+        /// </summary>
+        /// <param name="numberOfPages">NumberOfPages property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfPages(Decimal numberOfPages)
+        {
+            this.numberOfPagesField = numberOfPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfPages property is set
+        /// </summary>
+        /// <returns>true if NumberOfPages property is set</returns>
+        public Boolean IsSetNumberOfPages()
+        {
+            return  this.numberOfPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfPearls property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfPearls")]
+        public Decimal NumberOfPearls
+        {
+            get { return this.numberOfPearlsField.GetValueOrDefault() ; }
+            set { this.numberOfPearlsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfPearls property
+        /// </summary>
+        /// <param name="numberOfPearls">NumberOfPearls property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfPearls(Decimal numberOfPearls)
+        {
+            this.numberOfPearlsField = numberOfPearls;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfPearls property is set
+        /// </summary>
+        /// <returns>true if NumberOfPearls property is set</returns>
+        public Boolean IsSetNumberOfPearls()
+        {
+            return  this.numberOfPearlsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfRapidFireShots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfRapidFireShots")]
+        public Decimal NumberOfRapidFireShots
+        {
+            get { return this.numberOfRapidFireShotsField.GetValueOrDefault() ; }
+            set { this.numberOfRapidFireShotsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfRapidFireShots property
+        /// </summary>
+        /// <param name="numberOfRapidFireShots">NumberOfRapidFireShots property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfRapidFireShots(Decimal numberOfRapidFireShots)
+        {
+            this.numberOfRapidFireShotsField = numberOfRapidFireShots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfRapidFireShots property is set
+        /// </summary>
+        /// <returns>true if NumberOfRapidFireShots property is set</returns>
+        public Boolean IsSetNumberOfRapidFireShots()
+        {
+            return  this.numberOfRapidFireShotsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfStones property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfStones")]
+        public Decimal NumberOfStones
+        {
+            get { return this.numberOfStonesField.GetValueOrDefault() ; }
+            set { this.numberOfStonesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfStones property
+        /// </summary>
+        /// <param name="numberOfStones">NumberOfStones property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfStones(Decimal numberOfStones)
+        {
+            this.numberOfStonesField = numberOfStones;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfStones property is set
+        /// </summary>
+        /// <returns>true if NumberOfStones property is set</returns>
+        public Boolean IsSetNumberOfStones()
+        {
+            return  this.numberOfStonesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfStrings property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfStrings")]
+        public Decimal NumberOfStrings
+        {
+            get { return this.numberOfStringsField.GetValueOrDefault() ; }
+            set { this.numberOfStringsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfStrings property
+        /// </summary>
+        /// <param name="numberOfStrings">NumberOfStrings property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfStrings(Decimal numberOfStrings)
+        {
+            this.numberOfStringsField = numberOfStrings;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfStrings property is set
+        /// </summary>
+        /// <returns>true if NumberOfStrings property is set</returns>
+        public Boolean IsSetNumberOfStrings()
+        {
+            return  this.numberOfStringsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfTracks property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfTracks")]
+        public Decimal NumberOfTracks
+        {
+            get { return this.numberOfTracksField.GetValueOrDefault() ; }
+            set { this.numberOfTracksField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfTracks property
+        /// </summary>
+        /// <param name="numberOfTracks">NumberOfTracks property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithNumberOfTracks(Decimal numberOfTracks)
+        {
+            this.numberOfTracksField = numberOfTracks;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfTracks property is set
+        /// </summary>
+        /// <returns>true if NumberOfTracks property is set</returns>
+        public Boolean IsSetNumberOfTracks()
+        {
+            return  this.numberOfTracksField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OperatingSystem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperatingSystem")]
+        public String OperatingSystem
+        {
+            get { return this.operatingSystemField ; }
+            set { this.operatingSystemField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperatingSystem property
+        /// </summary>
+        /// <param name="operatingSystem">OperatingSystem property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithOperatingSystem(String operatingSystem)
+        {
+            this.operatingSystemField = operatingSystem;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperatingSystem property is set
+        /// </summary>
+        /// <returns>true if OperatingSystem property is set</returns>
+        public Boolean IsSetOperatingSystem()
+        {
+            return  this.operatingSystemField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OpticalSensorResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OpticalSensorResolution")]
+        public DecimalWithUnits OpticalSensorResolution
+        {
+            get { return this.opticalSensorResolutionField ; }
+            set { this.opticalSensorResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OpticalSensorResolution property
+        /// </summary>
+        /// <param name="opticalSensorResolution">OpticalSensorResolution property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithOpticalSensorResolution(DecimalWithUnits opticalSensorResolution)
+        {
+            this.opticalSensorResolutionField = opticalSensorResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OpticalSensorResolution property is set
+        /// </summary>
+        /// <returns>true if OpticalSensorResolution property is set</returns>
+        public Boolean IsSetOpticalSensorResolution()
+        {
+            return this.opticalSensorResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OpticalZoom property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OpticalZoom")]
+        public DecimalWithUnits OpticalZoom
+        {
+            get { return this.opticalZoomField ; }
+            set { this.opticalZoomField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OpticalZoom property
+        /// </summary>
+        /// <param name="opticalZoom">OpticalZoom property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithOpticalZoom(DecimalWithUnits opticalZoom)
+        {
+            this.opticalZoomField = opticalZoom;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OpticalZoom property is set
+        /// </summary>
+        /// <returns>true if OpticalZoom property is set</returns>
+        public Boolean IsSetOpticalZoom()
+        {
+            return this.opticalZoomField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OriginalReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OriginalReleaseDate")]
+        public String OriginalReleaseDate
+        {
+            get { return this.originalReleaseDateField ; }
+            set { this.originalReleaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OriginalReleaseDate property
+        /// </summary>
+        /// <param name="originalReleaseDate">OriginalReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithOriginalReleaseDate(String originalReleaseDate)
+        {
+            this.originalReleaseDateField = originalReleaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OriginalReleaseDate property is set
+        /// </summary>
+        /// <returns>true if OriginalReleaseDate property is set</returns>
+        public Boolean IsSetOriginalReleaseDate()
+        {
+            return  this.originalReleaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OutputWattage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OutputWattage")]
+        public Decimal OutputWattage
+        {
+            get { return this.outputWattageField.GetValueOrDefault() ; }
+            set { this.outputWattageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OutputWattage property
+        /// </summary>
+        /// <param name="outputWattage">OutputWattage property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithOutputWattage(Decimal outputWattage)
+        {
+            this.outputWattageField = outputWattage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OutputWattage property is set
+        /// </summary>
+        /// <returns>true if OutputWattage property is set</returns>
+        public Boolean IsSetOutputWattage()
+        {
+            return  this.outputWattageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PackageDimensions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PackageDimensions")]
+        public PackageDimensions PackageDimensions
+        {
+            get { return this.packageDimensionsField ; }
+            set { this.packageDimensionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PackageDimensions property
+        /// </summary>
+        /// <param name="packageDimensions">PackageDimensions property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPackageDimensions(PackageDimensions packageDimensions)
+        {
+            this.packageDimensionsField = packageDimensions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PackageDimensions property is set
+        /// </summary>
+        /// <returns>true if PackageDimensions property is set</returns>
+        public Boolean IsSetPackageDimensions()
+        {
+            return this.packageDimensionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PackageQuantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PackageQuantity")]
+        public Decimal PackageQuantity
+        {
+            get { return this.packageQuantityField.GetValueOrDefault() ; }
+            set { this.packageQuantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PackageQuantity property
+        /// </summary>
+        /// <param name="packageQuantity">PackageQuantity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPackageQuantity(Decimal packageQuantity)
+        {
+            this.packageQuantityField = packageQuantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PackageQuantity property is set
+        /// </summary>
+        /// <returns>true if PackageQuantity property is set</returns>
+        public Boolean IsSetPackageQuantity()
+        {
+            return  this.packageQuantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PantLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PantLength")]
+        public List<String> PantLength
+        {
+            get
+            {
+                if (this.pantLengthField == null)
+                {
+                    this.pantLengthField = new List<String>();
+                }
+                return this.pantLengthField;
+            }
+            set { this.pantLengthField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PantLength property
+        /// </summary>
+        /// <param name="list">PantLength property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPantLength(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PantLength.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PantLength property is set
+        /// </summary>
+        /// <returns>true if PantLength property is set</returns>
+        public Boolean IsSetPantLength()
+        {
+            return (PantLength.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PantSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PantSize")]
+        public List<String> PantSize
+        {
+            get
+            {
+                if (this.pantSizeField == null)
+                {
+                    this.pantSizeField = new List<String>();
+                }
+                return this.pantSizeField;
+            }
+            set { this.pantSizeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PantSize property
+        /// </summary>
+        /// <param name="list">PantSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPantSize(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PantSize.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PantSize property is set
+        /// </summary>
+        /// <returns>true if PantSize property is set</returns>
+        public Boolean IsSetPantSize()
+        {
+            return (PantSize.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PearlLustre property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlLustre")]
+        public String PearlLustre
+        {
+            get { return this.pearlLustreField ; }
+            set { this.pearlLustreField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlLustre property
+        /// </summary>
+        /// <param name="pearlLustre">PearlLustre property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlLustre(String pearlLustre)
+        {
+            this.pearlLustreField = pearlLustre;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlLustre property is set
+        /// </summary>
+        /// <returns>true if PearlLustre property is set</returns>
+        public Boolean IsSetPearlLustre()
+        {
+            return  this.pearlLustreField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlMinimumColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlMinimumColor")]
+        public String PearlMinimumColor
+        {
+            get { return this.pearlMinimumColorField ; }
+            set { this.pearlMinimumColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlMinimumColor property
+        /// </summary>
+        /// <param name="pearlMinimumColor">PearlMinimumColor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlMinimumColor(String pearlMinimumColor)
+        {
+            this.pearlMinimumColorField = pearlMinimumColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlMinimumColor property is set
+        /// </summary>
+        /// <returns>true if PearlMinimumColor property is set</returns>
+        public Boolean IsSetPearlMinimumColor()
+        {
+            return  this.pearlMinimumColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlShape property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlShape")]
+        public String PearlShape
+        {
+            get { return this.pearlShapeField ; }
+            set { this.pearlShapeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlShape property
+        /// </summary>
+        /// <param name="pearlShape">PearlShape property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlShape(String pearlShape)
+        {
+            this.pearlShapeField = pearlShape;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlShape property is set
+        /// </summary>
+        /// <returns>true if PearlShape property is set</returns>
+        public Boolean IsSetPearlShape()
+        {
+            return  this.pearlShapeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlStringingMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlStringingMethod")]
+        public String PearlStringingMethod
+        {
+            get { return this.pearlStringingMethodField ; }
+            set { this.pearlStringingMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlStringingMethod property
+        /// </summary>
+        /// <param name="pearlStringingMethod">PearlStringingMethod property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlStringingMethod(String pearlStringingMethod)
+        {
+            this.pearlStringingMethodField = pearlStringingMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlStringingMethod property is set
+        /// </summary>
+        /// <returns>true if PearlStringingMethod property is set</returns>
+        public Boolean IsSetPearlStringingMethod()
+        {
+            return  this.pearlStringingMethodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlSurfaceBlemishes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlSurfaceBlemishes")]
+        public String PearlSurfaceBlemishes
+        {
+            get { return this.pearlSurfaceBlemishesField ; }
+            set { this.pearlSurfaceBlemishesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlSurfaceBlemishes property
+        /// </summary>
+        /// <param name="pearlSurfaceBlemishes">PearlSurfaceBlemishes property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlSurfaceBlemishes(String pearlSurfaceBlemishes)
+        {
+            this.pearlSurfaceBlemishesField = pearlSurfaceBlemishes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlSurfaceBlemishes property is set
+        /// </summary>
+        /// <returns>true if PearlSurfaceBlemishes property is set</returns>
+        public Boolean IsSetPearlSurfaceBlemishes()
+        {
+            return  this.pearlSurfaceBlemishesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlType")]
+        public String PearlType
+        {
+            get { return this.pearlTypeField ; }
+            set { this.pearlTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlType property
+        /// </summary>
+        /// <param name="pearlType">PearlType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlType(String pearlType)
+        {
+            this.pearlTypeField = pearlType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlType property is set
+        /// </summary>
+        /// <returns>true if PearlType property is set</returns>
+        public Boolean IsSetPearlType()
+        {
+            return  this.pearlTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlUniformity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlUniformity")]
+        public String PearlUniformity
+        {
+            get { return this.pearlUniformityField ; }
+            set { this.pearlUniformityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlUniformity property
+        /// </summary>
+        /// <param name="pearlUniformity">PearlUniformity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPearlUniformity(String pearlUniformity)
+        {
+            this.pearlUniformityField = pearlUniformity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlUniformity property is set
+        /// </summary>
+        /// <returns>true if PearlUniformity property is set</returns>
+        public Boolean IsSetPearlUniformity()
+        {
+            return  this.pearlUniformityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PhoneNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PhoneNumber")]
+        public String PhoneNumber
+        {
+            get { return this.phoneNumberField ; }
+            set { this.phoneNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PhoneNumber property
+        /// </summary>
+        /// <param name="phoneNumber">PhoneNumber property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPhoneNumber(String phoneNumber)
+        {
+            this.phoneNumberField = phoneNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PhoneNumber property is set
+        /// </summary>
+        /// <returns>true if PhoneNumber property is set</returns>
+        public Boolean IsSetPhoneNumber()
+        {
+            return  this.phoneNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PhotoFlashType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PhotoFlashType")]
+        public List<String> PhotoFlashType
+        {
+            get
+            {
+                if (this.photoFlashTypeField == null)
+                {
+                    this.photoFlashTypeField = new List<String>();
+                }
+                return this.photoFlashTypeField;
+            }
+            set { this.photoFlashTypeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PhotoFlashType property
+        /// </summary>
+        /// <param name="list">PhotoFlashType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPhotoFlashType(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PhotoFlashType.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PhotoFlashType property is set
+        /// </summary>
+        /// <returns>true if PhotoFlashType property is set</returns>
+        public Boolean IsSetPhotoFlashType()
+        {
+            return (PhotoFlashType.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PictureFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PictureFormat")]
+        public List<String> PictureFormat
+        {
+            get
+            {
+                if (this.pictureFormatField == null)
+                {
+                    this.pictureFormatField = new List<String>();
+                }
+                return this.pictureFormatField;
+            }
+            set { this.pictureFormatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PictureFormat property
+        /// </summary>
+        /// <param name="list">PictureFormat property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPictureFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PictureFormat.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PictureFormat property is set
+        /// </summary>
+        /// <returns>true if PictureFormat property is set</returns>
+        public Boolean IsSetPictureFormat()
+        {
+            return (PictureFormat.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Platform property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Platform")]
+        public List<String> Platform
+        {
+            get
+            {
+                if (this.platformField == null)
+                {
+                    this.platformField = new List<String>();
+                }
+                return this.platformField;
+            }
+            set { this.platformField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Platform property
+        /// </summary>
+        /// <param name="list">Platform property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPlatform(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Platform.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Platform property is set
+        /// </summary>
+        /// <returns>true if Platform property is set</returns>
+        public Boolean IsSetPlatform()
+        {
+            return (Platform.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PriceRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PriceRating")]
+        public Decimal PriceRating
+        {
+            get { return this.priceRatingField.GetValueOrDefault() ; }
+            set { this.priceRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PriceRating property
+        /// </summary>
+        /// <param name="priceRating">PriceRating property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPriceRating(Decimal priceRating)
+        {
+            this.priceRatingField = priceRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PriceRating property is set
+        /// </summary>
+        /// <returns>true if PriceRating property is set</returns>
+        public Boolean IsSetPriceRating()
+        {
+            return  this.priceRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PrimaryColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PrimaryColor")]
+        public List<String> PrimaryColor
+        {
+            get
+            {
+                if (this.primaryColorField == null)
+                {
+                    this.primaryColorField = new List<String>();
+                }
+                return this.primaryColorField;
+            }
+            set { this.primaryColorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PrimaryColor property
+        /// </summary>
+        /// <param name="list">PrimaryColor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPrimaryColor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PrimaryColor.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PrimaryColor property is set
+        /// </summary>
+        /// <returns>true if PrimaryColor property is set</returns>
+        public Boolean IsSetPrimaryColor()
+        {
+            return (PrimaryColor.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ProcessorCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProcessorCount")]
+        public Decimal ProcessorCount
+        {
+            get { return this.processorCountField.GetValueOrDefault() ; }
+            set { this.processorCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProcessorCount property
+        /// </summary>
+        /// <param name="processorCount">ProcessorCount property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithProcessorCount(Decimal processorCount)
+        {
+            this.processorCountField = processorCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProcessorCount property is set
+        /// </summary>
+        /// <returns>true if ProcessorCount property is set</returns>
+        public Boolean IsSetProcessorCount()
+        {
+            return  this.processorCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductGroup")]
+        public String ProductGroup
+        {
+            get { return this.productGroupField ; }
+            set { this.productGroupField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductGroup property
+        /// </summary>
+        /// <param name="productGroup">ProductGroup property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithProductGroup(String productGroup)
+        {
+            this.productGroupField = productGroup;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductGroup property is set
+        /// </summary>
+        /// <returns>true if ProductGroup property is set</returns>
+        public Boolean IsSetProductGroup()
+        {
+            return  this.productGroupField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductSiteLaunchDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductSiteLaunchDate")]
+        public String ProductSiteLaunchDate
+        {
+            get { return this.productSiteLaunchDateField ; }
+            set { this.productSiteLaunchDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductSiteLaunchDate property
+        /// </summary>
+        /// <param name="productSiteLaunchDate">ProductSiteLaunchDate property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithProductSiteLaunchDate(String productSiteLaunchDate)
+        {
+            this.productSiteLaunchDateField = productSiteLaunchDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductSiteLaunchDate property is set
+        /// </summary>
+        /// <returns>true if ProductSiteLaunchDate property is set</returns>
+        public Boolean IsSetProductSiteLaunchDate()
+        {
+            return  this.productSiteLaunchDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductTypeName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductTypeName")]
+        public String ProductTypeName
+        {
+            get { return this.productTypeNameField ; }
+            set { this.productTypeNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductTypeName property
+        /// </summary>
+        /// <param name="productTypeName">ProductTypeName property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithProductTypeName(String productTypeName)
+        {
+            this.productTypeNameField = productTypeName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductTypeName property is set
+        /// </summary>
+        /// <returns>true if ProductTypeName property is set</returns>
+        public Boolean IsSetProductTypeName()
+        {
+            return  this.productTypeNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductTypeSubcategory property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductTypeSubcategory")]
+        public String ProductTypeSubcategory
+        {
+            get { return this.productTypeSubcategoryField ; }
+            set { this.productTypeSubcategoryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductTypeSubcategory property
+        /// </summary>
+        /// <param name="productTypeSubcategory">ProductTypeSubcategory property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithProductTypeSubcategory(String productTypeSubcategory)
+        {
+            this.productTypeSubcategoryField = productTypeSubcategory;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductTypeSubcategory property is set
+        /// </summary>
+        /// <returns>true if ProductTypeSubcategory property is set</returns>
+        public Boolean IsSetProductTypeSubcategory()
+        {
+            return  this.productTypeSubcategoryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PromotionalTag property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PromotionalTag")]
+        public String PromotionalTag
+        {
+            get { return this.promotionalTagField ; }
+            set { this.promotionalTagField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PromotionalTag property
+        /// </summary>
+        /// <param name="promotionalTag">PromotionalTag property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPromotionalTag(String promotionalTag)
+        {
+            this.promotionalTagField = promotionalTag;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PromotionalTag property is set
+        /// </summary>
+        /// <returns>true if PromotionalTag property is set</returns>
+        public Boolean IsSetPromotionalTag()
+        {
+            return  this.promotionalTagField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PublicationDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PublicationDate")]
+        public String PublicationDate
+        {
+            get { return this.publicationDateField ; }
+            set { this.publicationDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PublicationDate property
+        /// </summary>
+        /// <param name="publicationDate">PublicationDate property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPublicationDate(String publicationDate)
+        {
+            this.publicationDateField = publicationDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PublicationDate property is set
+        /// </summary>
+        /// <returns>true if PublicationDate property is set</returns>
+        public Boolean IsSetPublicationDate()
+        {
+            return  this.publicationDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Publisher property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Publisher")]
+        public String Publisher
+        {
+            get { return this.publisherField ; }
+            set { this.publisherField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Publisher property
+        /// </summary>
+        /// <param name="publisher">Publisher property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPublisher(String publisher)
+        {
+            this.publisherField = publisher;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Publisher property is set
+        /// </summary>
+        /// <returns>true if Publisher property is set</returns>
+        public Boolean IsSetPublisher()
+        {
+            return  this.publisherField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the POBoxShippingExcluded property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "POBoxShippingExcluded")]
+        public String POBoxShippingExcluded
+        {
+            get { return this.POBoxShippingExcludedField ; }
+            set { this.POBoxShippingExcludedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the POBoxShippingExcluded property
+        /// </summary>
+        /// <param name="POBoxShippingExcluded">POBoxShippingExcluded property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithPOBoxShippingExcluded(String POBoxShippingExcluded)
+        {
+            this.POBoxShippingExcludedField = POBoxShippingExcluded;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if POBoxShippingExcluded property is set
+        /// </summary>
+        /// <returns>true if POBoxShippingExcluded property is set</returns>
+        public Boolean IsSetPOBoxShippingExcluded()
+        {
+            return  this.POBoxShippingExcludedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReadingLevel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReadingLevel")]
+        public String ReadingLevel
+        {
+            get { return this.readingLevelField ; }
+            set { this.readingLevelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReadingLevel property
+        /// </summary>
+        /// <param name="readingLevel">ReadingLevel property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithReadingLevel(String readingLevel)
+        {
+            this.readingLevelField = readingLevel;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReadingLevel property is set
+        /// </summary>
+        /// <returns>true if ReadingLevel property is set</returns>
+        public Boolean IsSetReadingLevel()
+        {
+            return  this.readingLevelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReturnMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReturnMethod")]
+        public List<String> ReturnMethod
+        {
+            get
+            {
+                if (this.returnMethodField == null)
+                {
+                    this.returnMethodField = new List<String>();
+                }
+                return this.returnMethodField;
+            }
+            set { this.returnMethodField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReturnMethod property
+        /// </summary>
+        /// <param name="list">ReturnMethod property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithReturnMethod(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ReturnMethod.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ReturnMethod property is set
+        /// </summary>
+        /// <returns>true if ReturnMethod property is set</returns>
+        public Boolean IsSetReturnMethod()
+        {
+            return (ReturnMethod.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the RecorderTrackCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RecorderTrackCount")]
+        public Decimal RecorderTrackCount
+        {
+            get { return this.recorderTrackCountField.GetValueOrDefault() ; }
+            set { this.recorderTrackCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RecorderTrackCount property
+        /// </summary>
+        /// <param name="recorderTrackCount">RecorderTrackCount property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRecorderTrackCount(Decimal recorderTrackCount)
+        {
+            this.recorderTrackCountField = recorderTrackCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RecorderTrackCount property is set
+        /// </summary>
+        /// <returns>true if RecorderTrackCount property is set</returns>
+        public Boolean IsSetRecorderTrackCount()
+        {
+            return  this.recorderTrackCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RegionCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RegionCode")]
+        public String RegionCode
+        {
+            get { return this.regionCodeField ; }
+            set { this.regionCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RegionCode property
+        /// </summary>
+        /// <param name="regionCode">RegionCode property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRegionCode(String regionCode)
+        {
+            this.regionCodeField = regionCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RegionCode property is set
+        /// </summary>
+        /// <returns>true if RegionCode property is set</returns>
+        public Boolean IsSetRegionCode()
+        {
+            return  this.regionCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RegionOfOrigin property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RegionOfOrigin")]
+        public String RegionOfOrigin
+        {
+            get { return this.regionOfOriginField ; }
+            set { this.regionOfOriginField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RegionOfOrigin property
+        /// </summary>
+        /// <param name="regionOfOrigin">RegionOfOrigin property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRegionOfOrigin(String regionOfOrigin)
+        {
+            this.regionOfOriginField = regionOfOrigin;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RegionOfOrigin property is set
+        /// </summary>
+        /// <returns>true if RegionOfOrigin property is set</returns>
+        public Boolean IsSetRegionOfOrigin()
+        {
+            return  this.regionOfOriginField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReturnPolicy property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReturnPolicy")]
+        public String ReturnPolicy
+        {
+            get { return this.returnPolicyField ; }
+            set { this.returnPolicyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReturnPolicy property
+        /// </summary>
+        /// <param name="returnPolicy">ReturnPolicy property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithReturnPolicy(String returnPolicy)
+        {
+            this.returnPolicyField = returnPolicy;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReturnPolicy property is set
+        /// </summary>
+        /// <returns>true if ReturnPolicy property is set</returns>
+        public Boolean IsSetReturnPolicy()
+        {
+            return  this.returnPolicyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReleaseDate")]
+        public String ReleaseDate
+        {
+            get { return this.releaseDateField ; }
+            set { this.releaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReleaseDate property
+        /// </summary>
+        /// <param name="releaseDate">ReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithReleaseDate(String releaseDate)
+        {
+            this.releaseDateField = releaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReleaseDate property is set
+        /// </summary>
+        /// <returns>true if ReleaseDate property is set</returns>
+        public Boolean IsSetReleaseDate()
+        {
+            return  this.releaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RemovableMemory property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RemovableMemory")]
+        public String RemovableMemory
+        {
+            get { return this.removableMemoryField ; }
+            set { this.removableMemoryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RemovableMemory property
+        /// </summary>
+        /// <param name="removableMemory">RemovableMemory property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRemovableMemory(String removableMemory)
+        {
+            this.removableMemoryField = removableMemory;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RemovableMemory property is set
+        /// </summary>
+        /// <returns>true if RemovableMemory property is set</returns>
+        public Boolean IsSetRemovableMemory()
+        {
+            return  this.removableMemoryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RemovableStorage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RemovableStorage")]
+        public String RemovableStorage
+        {
+            get { return this.removableStorageField ; }
+            set { this.removableStorageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RemovableStorage property
+        /// </summary>
+        /// <param name="removableStorage">RemovableStorage property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRemovableStorage(String removableStorage)
+        {
+            this.removableStorageField = removableStorage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RemovableStorage property is set
+        /// </summary>
+        /// <returns>true if RemovableStorage property is set</returns>
+        public Boolean IsSetRemovableStorage()
+        {
+            return  this.removableStorageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RequiredVoltageRange property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RequiredVoltageRange")]
+        public String RequiredVoltageRange
+        {
+            get { return this.requiredVoltageRangeField ; }
+            set { this.requiredVoltageRangeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RequiredVoltageRange property
+        /// </summary>
+        /// <param name="requiredVoltageRange">RequiredVoltageRange property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRequiredVoltageRange(String requiredVoltageRange)
+        {
+            this.requiredVoltageRangeField = requiredVoltageRange;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RequiredVoltageRange property is set
+        /// </summary>
+        /// <returns>true if RequiredVoltageRange property is set</returns>
+        public Boolean IsSetRequiredVoltageRange()
+        {
+            return  this.requiredVoltageRangeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResolutionModes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResolutionModes")]
+        public String ResolutionModes
+        {
+            get { return this.resolutionModesField ; }
+            set { this.resolutionModesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResolutionModes property
+        /// </summary>
+        /// <param name="resolutionModes">ResolutionModes property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithResolutionModes(String resolutionModes)
+        {
+            this.resolutionModesField = resolutionModes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ResolutionModes property is set
+        /// </summary>
+        /// <returns>true if ResolutionModes property is set</returns>
+        public Boolean IsSetResolutionModes()
+        {
+            return  this.resolutionModesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RingSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RingSize")]
+        public String RingSize
+        {
+            get { return this.ringSizeField ; }
+            set { this.ringSizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RingSize property
+        /// </summary>
+        /// <param name="ringSize">RingSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRingSize(String ringSize)
+        {
+            this.ringSizeField = ringSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RingSize property is set
+        /// </summary>
+        /// <returns>true if RingSize property is set</returns>
+        public Boolean IsSetRingSize()
+        {
+            return  this.ringSizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RunningTime property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RunningTime")]
+        public DecimalWithUnits RunningTime
+        {
+            get { return this.runningTimeField ; }
+            set { this.runningTimeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RunningTime property
+        /// </summary>
+        /// <param name="runningTime">RunningTime property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithRunningTime(DecimalWithUnits runningTime)
+        {
+            this.runningTimeField = runningTime;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RunningTime property is set
+        /// </summary>
+        /// <returns>true if RunningTime property is set</returns>
+        public Boolean IsSetRunningTime()
+        {
+            return this.runningTimeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ScentName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ScentName")]
+        public String ScentName
+        {
+            get { return this.scentNameField ; }
+            set { this.scentNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ScentName property
+        /// </summary>
+        /// <param name="scentName">ScentName property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithScentName(String scentName)
+        {
+            this.scentNameField = scentName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ScentName property is set
+        /// </summary>
+        /// <returns>true if ScentName property is set</returns>
+        public Boolean IsSetScentName()
+        {
+            return  this.scentNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SecondaryCacheSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SecondaryCacheSize")]
+        public NonNegativeIntegerWithUnits SecondaryCacheSize
+        {
+            get { return this.secondaryCacheSizeField ; }
+            set { this.secondaryCacheSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SecondaryCacheSize property
+        /// </summary>
+        /// <param name="secondaryCacheSize">SecondaryCacheSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSecondaryCacheSize(NonNegativeIntegerWithUnits secondaryCacheSize)
+        {
+            this.secondaryCacheSizeField = secondaryCacheSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SecondaryCacheSize property is set
+        /// </summary>
+        /// <returns>true if SecondaryCacheSize property is set</returns>
+        public Boolean IsSetSecondaryCacheSize()
+        {
+            return this.secondaryCacheSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SettingType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SettingType")]
+        public String SettingType
+        {
+            get { return this.settingTypeField ; }
+            set { this.settingTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SettingType property
+        /// </summary>
+        /// <param name="settingType">SettingType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSettingType(String settingType)
+        {
+            this.settingTypeField = settingType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SettingType property is set
+        /// </summary>
+        /// <returns>true if SettingType property is set</returns>
+        public Boolean IsSetSettingType()
+        {
+            return  this.settingTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ShaftMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShaftMaterialType")]
+        public String ShaftMaterialType
+        {
+            get { return this.shaftMaterialTypeField ; }
+            set { this.shaftMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShaftMaterialType property
+        /// </summary>
+        /// <param name="shaftMaterialType">ShaftMaterialType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithShaftMaterialType(String shaftMaterialType)
+        {
+            this.shaftMaterialTypeField = shaftMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ShaftMaterialType property is set
+        /// </summary>
+        /// <returns>true if ShaftMaterialType property is set</returns>
+        public Boolean IsSetShaftMaterialType()
+        {
+            return  this.shaftMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ShoeSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShoeSize")]
+        public List<String> ShoeSize
+        {
+            get
+            {
+                if (this.shoeSizeField == null)
+                {
+                    this.shoeSizeField = new List<String>();
+                }
+                return this.shoeSizeField;
+            }
+            set { this.shoeSizeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShoeSize property
+        /// </summary>
+        /// <param name="list">ShoeSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithShoeSize(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ShoeSize.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ShoeSize property is set
+        /// </summary>
+        /// <returns>true if ShoeSize property is set</returns>
+        public Boolean IsSetShoeSize()
+        {
+            return (ShoeSize.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Size property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Size")]
+        public String Size
+        {
+            get { return this.sizeField ; }
+            set { this.sizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Size property
+        /// </summary>
+        /// <param name="size">Size property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSize(String size)
+        {
+            this.sizeField = size;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Size property is set
+        /// </summary>
+        /// <returns>true if Size property is set</returns>
+        public Boolean IsSetSize()
+        {
+            return  this.sizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SizePerPearl property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SizePerPearl")]
+        public String SizePerPearl
+        {
+            get { return this.sizePerPearlField ; }
+            set { this.sizePerPearlField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SizePerPearl property
+        /// </summary>
+        /// <param name="sizePerPearl">SizePerPearl property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSizePerPearl(String sizePerPearl)
+        {
+            this.sizePerPearlField = sizePerPearl;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SizePerPearl property is set
+        /// </summary>
+        /// <returns>true if SizePerPearl property is set</returns>
+        public Boolean IsSetSizePerPearl()
+        {
+            return  this.sizePerPearlField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SkillLevel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SkillLevel")]
+        public String SkillLevel
+        {
+            get { return this.skillLevelField ; }
+            set { this.skillLevelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SkillLevel property
+        /// </summary>
+        /// <param name="skillLevel">SkillLevel property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSkillLevel(String skillLevel)
+        {
+            this.skillLevelField = skillLevel;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SkillLevel property is set
+        /// </summary>
+        /// <returns>true if SkillLevel property is set</returns>
+        public Boolean IsSetSkillLevel()
+        {
+            return  this.skillLevelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SKU property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SKU")]
+        public String SKU
+        {
+            get { return this.SKUField ; }
+            set { this.SKUField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SKU property
+        /// </summary>
+        /// <param name="SKU">SKU property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSKU(String SKU)
+        {
+            this.SKUField = SKU;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SKU property is set
+        /// </summary>
+        /// <returns>true if SKU property is set</returns>
+        public Boolean IsSetSKU()
+        {
+            return  this.SKUField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SoldInStores property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SoldInStores")]
+        public String SoldInStores
+        {
+            get { return this.soldInStoresField ; }
+            set { this.soldInStoresField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SoldInStores property
+        /// </summary>
+        /// <param name="soldInStores">SoldInStores property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSoldInStores(String soldInStores)
+        {
+            this.soldInStoresField = soldInStores;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SoldInStores property is set
+        /// </summary>
+        /// <returns>true if SoldInStores property is set</returns>
+        public Boolean IsSetSoldInStores()
+        {
+            return  this.soldInStoresField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SoundCardDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SoundCardDescription")]
+        public String SoundCardDescription
+        {
+            get { return this.soundCardDescriptionField ; }
+            set { this.soundCardDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SoundCardDescription property
+        /// </summary>
+        /// <param name="soundCardDescription">SoundCardDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSoundCardDescription(String soundCardDescription)
+        {
+            this.soundCardDescriptionField = soundCardDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SoundCardDescription property is set
+        /// </summary>
+        /// <returns>true if SoundCardDescription property is set</returns>
+        public Boolean IsSetSoundCardDescription()
+        {
+            return  this.soundCardDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpeakerCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpeakerCount")]
+        public Decimal SpeakerCount
+        {
+            get { return this.speakerCountField.GetValueOrDefault() ; }
+            set { this.speakerCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpeakerCount property
+        /// </summary>
+        /// <param name="speakerCount">SpeakerCount property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSpeakerCount(Decimal speakerCount)
+        {
+            this.speakerCountField = speakerCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SpeakerCount property is set
+        /// </summary>
+        /// <returns>true if SpeakerCount property is set</returns>
+        public Boolean IsSetSpeakerCount()
+        {
+            return  this.speakerCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpeakerDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpeakerDescription")]
+        public String SpeakerDescription
+        {
+            get { return this.speakerDescriptionField ; }
+            set { this.speakerDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpeakerDescription property
+        /// </summary>
+        /// <param name="speakerDescription">SpeakerDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSpeakerDescription(String speakerDescription)
+        {
+            this.speakerDescriptionField = speakerDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SpeakerDescription property is set
+        /// </summary>
+        /// <returns>true if SpeakerDescription property is set</returns>
+        public Boolean IsSetSpeakerDescription()
+        {
+            return  this.speakerDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpecialFeatures property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpecialFeatures")]
+        public List<String> SpecialFeatures
+        {
+            get
+            {
+                if (this.specialFeaturesField == null)
+                {
+                    this.specialFeaturesField = new List<String>();
+                }
+                return this.specialFeaturesField;
+            }
+            set { this.specialFeaturesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpecialFeatures property
+        /// </summary>
+        /// <param name="list">SpecialFeatures property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSpecialFeatures(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                SpecialFeatures.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of SpecialFeatures property is set
+        /// </summary>
+        /// <returns>true if SpecialFeatures property is set</returns>
+        public Boolean IsSetSpecialFeatures()
+        {
+            return (SpecialFeatures.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the StoneClarity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneClarity")]
+        public String StoneClarity
+        {
+            get { return this.stoneClarityField ; }
+            set { this.stoneClarityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneClarity property
+        /// </summary>
+        /// <param name="stoneClarity">StoneClarity property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStoneClarity(String stoneClarity)
+        {
+            this.stoneClarityField = stoneClarity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneClarity property is set
+        /// </summary>
+        /// <returns>true if StoneClarity property is set</returns>
+        public Boolean IsSetStoneClarity()
+        {
+            return  this.stoneClarityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneColor")]
+        public String StoneColor
+        {
+            get { return this.stoneColorField ; }
+            set { this.stoneColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneColor property
+        /// </summary>
+        /// <param name="stoneColor">StoneColor property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStoneColor(String stoneColor)
+        {
+            this.stoneColorField = stoneColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneColor property is set
+        /// </summary>
+        /// <returns>true if StoneColor property is set</returns>
+        public Boolean IsSetStoneColor()
+        {
+            return  this.stoneColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneCut property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneCut")]
+        public String StoneCut
+        {
+            get { return this.stoneCutField ; }
+            set { this.stoneCutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneCut property
+        /// </summary>
+        /// <param name="stoneCut">StoneCut property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStoneCut(String stoneCut)
+        {
+            this.stoneCutField = stoneCut;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneCut property is set
+        /// </summary>
+        /// <returns>true if StoneCut property is set</returns>
+        public Boolean IsSetStoneCut()
+        {
+            return  this.stoneCutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneShape property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneShape")]
+        public String StoneShape
+        {
+            get { return this.stoneShapeField ; }
+            set { this.stoneShapeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneShape property
+        /// </summary>
+        /// <param name="stoneShape">StoneShape property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStoneShape(String stoneShape)
+        {
+            this.stoneShapeField = stoneShape;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneShape property is set
+        /// </summary>
+        /// <returns>true if StoneShape property is set</returns>
+        public Boolean IsSetStoneShape()
+        {
+            return  this.stoneShapeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneWeight")]
+        public DecimalWithUnits StoneWeight
+        {
+            get { return this.stoneWeightField ; }
+            set { this.stoneWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneWeight property
+        /// </summary>
+        /// <param name="stoneWeight">StoneWeight property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStoneWeight(DecimalWithUnits stoneWeight)
+        {
+            this.stoneWeightField = stoneWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneWeight property is set
+        /// </summary>
+        /// <returns>true if StoneWeight property is set</returns>
+        public Boolean IsSetStoneWeight()
+        {
+            return this.stoneWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Studio property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Studio")]
+        public String Studio
+        {
+            get { return this.studioField ; }
+            set { this.studioField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Studio property
+        /// </summary>
+        /// <param name="studio">Studio property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStudio(String studio)
+        {
+            this.studioField = studio;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Studio property is set
+        /// </summary>
+        /// <returns>true if Studio property is set</returns>
+        public Boolean IsSetStudio()
+        {
+            return  this.studioField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Style property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Style")]
+        public String Style
+        {
+            get { return this.styleField ; }
+            set { this.styleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Style property
+        /// </summary>
+        /// <param name="style">Style property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithStyle(String style)
+        {
+            this.styleField = style;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Style property is set
+        /// </summary>
+        /// <returns>true if Style property is set</returns>
+        public Boolean IsSetStyle()
+        {
+            return  this.styleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SubscriptionLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubscriptionLength")]
+        public NonNegativeIntegerWithUnits SubscriptionLength
+        {
+            get { return this.subscriptionLengthField ; }
+            set { this.subscriptionLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubscriptionLength property
+        /// </summary>
+        /// <param name="subscriptionLength">SubscriptionLength property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSubscriptionLength(NonNegativeIntegerWithUnits subscriptionLength)
+        {
+            this.subscriptionLengthField = subscriptionLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubscriptionLength property is set
+        /// </summary>
+        /// <returns>true if SubscriptionLength property is set</returns>
+        public Boolean IsSetSubscriptionLength()
+        {
+            return this.subscriptionLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SupportedImageType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SupportedImageType")]
+        public List<String> SupportedImageType
+        {
+            get
+            {
+                if (this.supportedImageTypeField == null)
+                {
+                    this.supportedImageTypeField = new List<String>();
+                }
+                return this.supportedImageTypeField;
+            }
+            set { this.supportedImageTypeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SupportedImageType property
+        /// </summary>
+        /// <param name="list">SupportedImageType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSupportedImageType(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                SupportedImageType.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of SupportedImageType property is set
+        /// </summary>
+        /// <returns>true if SupportedImageType property is set</returns>
+        public Boolean IsSetSupportedImageType()
+        {
+            return (SupportedImageType.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SupportedMediaSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SupportedMediaSize")]
+        public String SupportedMediaSize
+        {
+            get { return this.supportedMediaSizeField ; }
+            set { this.supportedMediaSizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SupportedMediaSize property
+        /// </summary>
+        /// <param name="supportedMediaSize">SupportedMediaSize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSupportedMediaSize(String supportedMediaSize)
+        {
+            this.supportedMediaSizeField = supportedMediaSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SupportedMediaSize property is set
+        /// </summary>
+        /// <returns>true if SupportedMediaSize property is set</returns>
+        public Boolean IsSetSupportedMediaSize()
+        {
+            return  this.supportedMediaSizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SystemBusSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemBusSpeed")]
+        public DecimalWithUnits SystemBusSpeed
+        {
+            get { return this.systemBusSpeedField ; }
+            set { this.systemBusSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemBusSpeed property
+        /// </summary>
+        /// <param name="systemBusSpeed">SystemBusSpeed property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSystemBusSpeed(DecimalWithUnits systemBusSpeed)
+        {
+            this.systemBusSpeedField = systemBusSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemBusSpeed property is set
+        /// </summary>
+        /// <returns>true if SystemBusSpeed property is set</returns>
+        public Boolean IsSetSystemBusSpeed()
+        {
+            return this.systemBusSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemorySizeMax property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemorySizeMax")]
+        public DecimalWithUnits SystemMemorySizeMax
+        {
+            get { return this.systemMemorySizeMaxField ; }
+            set { this.systemMemorySizeMaxField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemorySizeMax property
+        /// </summary>
+        /// <param name="systemMemorySizeMax">SystemMemorySizeMax property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSystemMemorySizeMax(DecimalWithUnits systemMemorySizeMax)
+        {
+            this.systemMemorySizeMaxField = systemMemorySizeMax;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemorySizeMax property is set
+        /// </summary>
+        /// <returns>true if SystemMemorySizeMax property is set</returns>
+        public Boolean IsSetSystemMemorySizeMax()
+        {
+            return this.systemMemorySizeMaxField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemorySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemorySize")]
+        public DecimalWithUnits SystemMemorySize
+        {
+            get { return this.systemMemorySizeField ; }
+            set { this.systemMemorySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemorySize property
+        /// </summary>
+        /// <param name="systemMemorySize">SystemMemorySize property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSystemMemorySize(DecimalWithUnits systemMemorySize)
+        {
+            this.systemMemorySizeField = systemMemorySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemorySize property is set
+        /// </summary>
+        /// <returns>true if SystemMemorySize property is set</returns>
+        public Boolean IsSetSystemMemorySize()
+        {
+            return this.systemMemorySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemoryType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemoryType")]
+        public String SystemMemoryType
+        {
+            get { return this.systemMemoryTypeField ; }
+            set { this.systemMemoryTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemoryType property
+        /// </summary>
+        /// <param name="systemMemoryType">SystemMemoryType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithSystemMemoryType(String systemMemoryType)
+        {
+            this.systemMemoryTypeField = systemMemoryType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemoryType property is set
+        /// </summary>
+        /// <returns>true if SystemMemoryType property is set</returns>
+        public Boolean IsSetSystemMemoryType()
+        {
+            return  this.systemMemoryTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TargetBrand property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TargetBrand")]
+        public List<String> TargetBrand
+        {
+            get
+            {
+                if (this.targetBrandField == null)
+                {
+                    this.targetBrandField = new List<String>();
+                }
+                return this.targetBrandField;
+            }
+            set { this.targetBrandField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TargetBrand property
+        /// </summary>
+        /// <param name="list">TargetBrand property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTargetBrand(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                TargetBrand.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of TargetBrand property is set
+        /// </summary>
+        /// <returns>true if TargetBrand property is set</returns>
+        public Boolean IsSetTargetBrand()
+        {
+            return (TargetBrand.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TellingPageIndicator property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TellingPageIndicator")]
+        public String TellingPageIndicator
+        {
+            get { return this.tellingPageIndicatorField ; }
+            set { this.tellingPageIndicatorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TellingPageIndicator property
+        /// </summary>
+        /// <param name="tellingPageIndicator">TellingPageIndicator property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTellingPageIndicator(String tellingPageIndicator)
+        {
+            this.tellingPageIndicatorField = tellingPageIndicator;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TellingPageIndicator property is set
+        /// </summary>
+        /// <returns>true if TellingPageIndicator property is set</returns>
+        public Boolean IsSetTellingPageIndicator()
+        {
+            return  this.tellingPageIndicatorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TheatricalReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TheatricalReleaseDate")]
+        public String TheatricalReleaseDate
+        {
+            get { return this.theatricalReleaseDateField ; }
+            set { this.theatricalReleaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TheatricalReleaseDate property
+        /// </summary>
+        /// <param name="theatricalReleaseDate">TheatricalReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTheatricalReleaseDate(String theatricalReleaseDate)
+        {
+            this.theatricalReleaseDateField = theatricalReleaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TheatricalReleaseDate property is set
+        /// </summary>
+        /// <returns>true if TheatricalReleaseDate property is set</returns>
+        public Boolean IsSetTheatricalReleaseDate()
+        {
+            return  this.theatricalReleaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalDiamondWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalDiamondWeight")]
+        public DecimalWithUnits TotalDiamondWeight
+        {
+            get { return this.totalDiamondWeightField ; }
+            set { this.totalDiamondWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalDiamondWeight property
+        /// </summary>
+        /// <param name="totalDiamondWeight">TotalDiamondWeight property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalDiamondWeight(DecimalWithUnits totalDiamondWeight)
+        {
+            this.totalDiamondWeightField = totalDiamondWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalDiamondWeight property is set
+        /// </summary>
+        /// <returns>true if TotalDiamondWeight property is set</returns>
+        public Boolean IsSetTotalDiamondWeight()
+        {
+            return this.totalDiamondWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalExternalBaysFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalExternalBaysFree")]
+        public Decimal TotalExternalBaysFree
+        {
+            get { return this.totalExternalBaysFreeField.GetValueOrDefault() ; }
+            set { this.totalExternalBaysFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalExternalBaysFree property
+        /// </summary>
+        /// <param name="totalExternalBaysFree">TotalExternalBaysFree property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalExternalBaysFree(Decimal totalExternalBaysFree)
+        {
+            this.totalExternalBaysFreeField = totalExternalBaysFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalExternalBaysFree property is set
+        /// </summary>
+        /// <returns>true if TotalExternalBaysFree property is set</returns>
+        public Boolean IsSetTotalExternalBaysFree()
+        {
+            return  this.totalExternalBaysFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFirewirePorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFirewirePorts")]
+        public Decimal TotalFirewirePorts
+        {
+            get { return this.totalFirewirePortsField.GetValueOrDefault() ; }
+            set { this.totalFirewirePortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFirewirePorts property
+        /// </summary>
+        /// <param name="totalFirewirePorts">TotalFirewirePorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalFirewirePorts(Decimal totalFirewirePorts)
+        {
+            this.totalFirewirePortsField = totalFirewirePorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFirewirePorts property is set
+        /// </summary>
+        /// <returns>true if TotalFirewirePorts property is set</returns>
+        public Boolean IsSetTotalFirewirePorts()
+        {
+            return  this.totalFirewirePortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalGemWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalGemWeight")]
+        public DecimalWithUnits TotalGemWeight
+        {
+            get { return this.totalGemWeightField ; }
+            set { this.totalGemWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalGemWeight property
+        /// </summary>
+        /// <param name="totalGemWeight">TotalGemWeight property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalGemWeight(DecimalWithUnits totalGemWeight)
+        {
+            this.totalGemWeightField = totalGemWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalGemWeight property is set
+        /// </summary>
+        /// <returns>true if TotalGemWeight property is set</returns>
+        public Boolean IsSetTotalGemWeight()
+        {
+            return this.totalGemWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalInternalBaysFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalInternalBaysFree")]
+        public Decimal TotalInternalBaysFree
+        {
+            get { return this.totalInternalBaysFreeField.GetValueOrDefault() ; }
+            set { this.totalInternalBaysFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalInternalBaysFree property
+        /// </summary>
+        /// <param name="totalInternalBaysFree">TotalInternalBaysFree property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalInternalBaysFree(Decimal totalInternalBaysFree)
+        {
+            this.totalInternalBaysFreeField = totalInternalBaysFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalInternalBaysFree property is set
+        /// </summary>
+        /// <returns>true if TotalInternalBaysFree property is set</returns>
+        public Boolean IsSetTotalInternalBaysFree()
+        {
+            return  this.totalInternalBaysFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalMetalWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalMetalWeight")]
+        public DecimalWithUnits TotalMetalWeight
+        {
+            get { return this.totalMetalWeightField ; }
+            set { this.totalMetalWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalMetalWeight property
+        /// </summary>
+        /// <param name="totalMetalWeight">TotalMetalWeight property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalMetalWeight(DecimalWithUnits totalMetalWeight)
+        {
+            this.totalMetalWeightField = totalMetalWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalMetalWeight property is set
+        /// </summary>
+        /// <returns>true if TotalMetalWeight property is set</returns>
+        public Boolean IsSetTotalMetalWeight()
+        {
+            return this.totalMetalWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalNTSCPALPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalNTSCPALPorts")]
+        public Decimal TotalNTSCPALPorts
+        {
+            get { return this.totalNTSCPALPortsField.GetValueOrDefault() ; }
+            set { this.totalNTSCPALPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalNTSCPALPorts property
+        /// </summary>
+        /// <param name="totalNTSCPALPorts">TotalNTSCPALPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalNTSCPALPorts(Decimal totalNTSCPALPorts)
+        {
+            this.totalNTSCPALPortsField = totalNTSCPALPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalNTSCPALPorts property is set
+        /// </summary>
+        /// <returns>true if TotalNTSCPALPorts property is set</returns>
+        public Boolean IsSetTotalNTSCPALPorts()
+        {
+            return  this.totalNTSCPALPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalParallelPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalParallelPorts")]
+        public Decimal TotalParallelPorts
+        {
+            get { return this.totalParallelPortsField.GetValueOrDefault() ; }
+            set { this.totalParallelPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalParallelPorts property
+        /// </summary>
+        /// <param name="totalParallelPorts">TotalParallelPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalParallelPorts(Decimal totalParallelPorts)
+        {
+            this.totalParallelPortsField = totalParallelPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalParallelPorts property is set
+        /// </summary>
+        /// <returns>true if TotalParallelPorts property is set</returns>
+        public Boolean IsSetTotalParallelPorts()
+        {
+            return  this.totalParallelPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPCCardSlots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPCCardSlots")]
+        public Decimal TotalPCCardSlots
+        {
+            get { return this.totalPCCardSlotsField.GetValueOrDefault() ; }
+            set { this.totalPCCardSlotsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPCCardSlots property
+        /// </summary>
+        /// <param name="totalPCCardSlots">TotalPCCardSlots property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalPCCardSlots(Decimal totalPCCardSlots)
+        {
+            this.totalPCCardSlotsField = totalPCCardSlots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPCCardSlots property is set
+        /// </summary>
+        /// <returns>true if TotalPCCardSlots property is set</returns>
+        public Boolean IsSetTotalPCCardSlots()
+        {
+            return  this.totalPCCardSlotsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPCISlotsFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPCISlotsFree")]
+        public Decimal TotalPCISlotsFree
+        {
+            get { return this.totalPCISlotsFreeField.GetValueOrDefault() ; }
+            set { this.totalPCISlotsFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPCISlotsFree property
+        /// </summary>
+        /// <param name="totalPCISlotsFree">TotalPCISlotsFree property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalPCISlotsFree(Decimal totalPCISlotsFree)
+        {
+            this.totalPCISlotsFreeField = totalPCISlotsFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPCISlotsFree property is set
+        /// </summary>
+        /// <returns>true if TotalPCISlotsFree property is set</returns>
+        public Boolean IsSetTotalPCISlotsFree()
+        {
+            return  this.totalPCISlotsFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalSerialPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalSerialPorts")]
+        public Decimal TotalSerialPorts
+        {
+            get { return this.totalSerialPortsField.GetValueOrDefault() ; }
+            set { this.totalSerialPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalSerialPorts property
+        /// </summary>
+        /// <param name="totalSerialPorts">TotalSerialPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalSerialPorts(Decimal totalSerialPorts)
+        {
+            this.totalSerialPortsField = totalSerialPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalSerialPorts property is set
+        /// </summary>
+        /// <returns>true if TotalSerialPorts property is set</returns>
+        public Boolean IsSetTotalSerialPorts()
+        {
+            return  this.totalSerialPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalSVideoOutPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalSVideoOutPorts")]
+        public Decimal TotalSVideoOutPorts
+        {
+            get { return this.totalSVideoOutPortsField.GetValueOrDefault() ; }
+            set { this.totalSVideoOutPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalSVideoOutPorts property
+        /// </summary>
+        /// <param name="totalSVideoOutPorts">TotalSVideoOutPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalSVideoOutPorts(Decimal totalSVideoOutPorts)
+        {
+            this.totalSVideoOutPortsField = totalSVideoOutPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalSVideoOutPorts property is set
+        /// </summary>
+        /// <returns>true if TotalSVideoOutPorts property is set</returns>
+        public Boolean IsSetTotalSVideoOutPorts()
+        {
+            return  this.totalSVideoOutPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUSB2Ports property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUSB2Ports")]
+        public Decimal TotalUSB2Ports
+        {
+            get { return this.totalUSB2PortsField.GetValueOrDefault() ; }
+            set { this.totalUSB2PortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUSB2Ports property
+        /// </summary>
+        /// <param name="totalUSB2Ports">TotalUSB2Ports property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalUSB2Ports(Decimal totalUSB2Ports)
+        {
+            this.totalUSB2PortsField = totalUSB2Ports;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUSB2Ports property is set
+        /// </summary>
+        /// <returns>true if TotalUSB2Ports property is set</returns>
+        public Boolean IsSetTotalUSB2Ports()
+        {
+            return  this.totalUSB2PortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUSBPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUSBPorts")]
+        public Decimal TotalUSBPorts
+        {
+            get { return this.totalUSBPortsField.GetValueOrDefault() ; }
+            set { this.totalUSBPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUSBPorts property
+        /// </summary>
+        /// <param name="totalUSBPorts">TotalUSBPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalUSBPorts(Decimal totalUSBPorts)
+        {
+            this.totalUSBPortsField = totalUSBPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUSBPorts property is set
+        /// </summary>
+        /// <returns>true if TotalUSBPorts property is set</returns>
+        public Boolean IsSetTotalUSBPorts()
+        {
+            return  this.totalUSBPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalVGAOutPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVGAOutPorts")]
+        public Decimal TotalVGAOutPorts
+        {
+            get { return this.totalVGAOutPortsField.GetValueOrDefault() ; }
+            set { this.totalVGAOutPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVGAOutPorts property
+        /// </summary>
+        /// <param name="totalVGAOutPorts">TotalVGAOutPorts property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithTotalVGAOutPorts(Decimal totalVGAOutPorts)
+        {
+            this.totalVGAOutPortsField = totalVGAOutPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVGAOutPorts property is set
+        /// </summary>
+        /// <returns>true if TotalVGAOutPorts property is set</returns>
+        public Boolean IsSetTotalVGAOutPorts()
+        {
+            return  this.totalVGAOutPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the UPC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UPC")]
+        public String UPC
+        {
+            get { return this.UPCField ; }
+            set { this.UPCField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UPC property
+        /// </summary>
+        /// <param name="UPC">UPC property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithUPC(String UPC)
+        {
+            this.UPCField = UPC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UPC property is set
+        /// </summary>
+        /// <returns>true if UPC property is set</returns>
+        public Boolean IsSetUPC()
+        {
+            return  this.UPCField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationDenomination property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDenomination")]
+        public String VariationDenomination
+        {
+            get { return this.variationDenominationField ; }
+            set { this.variationDenominationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDenomination property
+        /// </summary>
+        /// <param name="variationDenomination">VariationDenomination property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithVariationDenomination(String variationDenomination)
+        {
+            this.variationDenominationField = variationDenomination;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationDenomination property is set
+        /// </summary>
+        /// <returns>true if VariationDenomination property is set</returns>
+        public Boolean IsSetVariationDenomination()
+        {
+            return  this.variationDenominationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDescription")]
+        public String VariationDescription
+        {
+            get { return this.variationDescriptionField ; }
+            set { this.variationDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDescription property
+        /// </summary>
+        /// <param name="variationDescription">VariationDescription property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithVariationDescription(String variationDescription)
+        {
+            this.variationDescriptionField = variationDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationDescription property is set
+        /// </summary>
+        /// <returns>true if VariationDescription property is set</returns>
+        public Boolean IsSetVariationDescription()
+        {
+            return  this.variationDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Warranty property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Warranty")]
+        public String Warranty
+        {
+            get { return this.warrantyField ; }
+            set { this.warrantyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Warranty property
+        /// </summary>
+        /// <param name="warranty">Warranty property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithWarranty(String warranty)
+        {
+            this.warrantyField = warranty;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Warranty property is set
+        /// </summary>
+        /// <returns>true if Warranty property is set</returns>
+        public Boolean IsSetWarranty()
+        {
+            return  this.warrantyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WatchMovementType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WatchMovementType")]
+        public String WatchMovementType
+        {
+            get { return this.watchMovementTypeField ; }
+            set { this.watchMovementTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WatchMovementType property
+        /// </summary>
+        /// <param name="watchMovementType">WatchMovementType property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithWatchMovementType(String watchMovementType)
+        {
+            this.watchMovementTypeField = watchMovementType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WatchMovementType property is set
+        /// </summary>
+        /// <returns>true if WatchMovementType property is set</returns>
+        public Boolean IsSetWatchMovementType()
+        {
+            return  this.watchMovementTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WaterResistanceDepth property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WaterResistanceDepth")]
+        public DecimalWithUnits WaterResistanceDepth
+        {
+            get { return this.waterResistanceDepthField ; }
+            set { this.waterResistanceDepthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WaterResistanceDepth property
+        /// </summary>
+        /// <param name="waterResistanceDepth">WaterResistanceDepth property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithWaterResistanceDepth(DecimalWithUnits waterResistanceDepth)
+        {
+            this.waterResistanceDepthField = waterResistanceDepth;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WaterResistanceDepth property is set
+        /// </summary>
+        /// <returns>true if WaterResistanceDepth property is set</returns>
+        public Boolean IsSetWaterResistanceDepth()
+        {
+            return this.waterResistanceDepthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the WEEETaxValue property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WEEETaxValue")]
+        public Price WEEETaxValue
+        {
+            get { return this.WEEETaxValueField ; }
+            set { this.WEEETaxValueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WEEETaxValue property
+        /// </summary>
+        /// <param name="WEEETaxValue">WEEETaxValue property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithWEEETaxValue(Price WEEETaxValue)
+        {
+            this.WEEETaxValueField = WEEETaxValue;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WEEETaxValue property is set
+        /// </summary>
+        /// <returns>true if WEEETaxValue property is set</returns>
+        public Boolean IsSetWEEETaxValue()
+        {
+            return this.WEEETaxValueField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the WirelessMicrophoneFrequency property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WirelessMicrophoneFrequency")]
+        public Decimal WirelessMicrophoneFrequency
+        {
+            get { return this.wirelessMicrophoneFrequencyField.GetValueOrDefault() ; }
+            set { this.wirelessMicrophoneFrequencyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WirelessMicrophoneFrequency property
+        /// </summary>
+        /// <param name="wirelessMicrophoneFrequency">WirelessMicrophoneFrequency property</param>
+        /// <returns>this instance</returns>
+        public ItemAttributes WithWirelessMicrophoneFrequency(Decimal wirelessMicrophoneFrequency)
+        {
+            this.wirelessMicrophoneFrequencyField = wirelessMicrophoneFrequency;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WirelessMicrophoneFrequency property is set
+        /// </summary>
+        /// <returns>true if WirelessMicrophoneFrequency property is set</returns>
+        public Boolean IsSetWirelessMicrophoneFrequency()
+        {
+            return  this.wirelessMicrophoneFrequencyField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> actorList  =  this.Actor;
+            foreach (String actor in actorList) { 
+                xml.Append("<Actor>");
+                xml.Append(EscapeXML(actor));
+                xml.Append("</Actor>");
+            }	
+            if (IsSetAddress()) {
+                Address  address = this.Address;
+                xml.Append("<Address>");
+                xml.Append(address.ToXMLFragment());
+                xml.Append("</Address>");
+            } 
+            List<String> ageList  =  this.Age;
+            foreach (String age in ageList) { 
+                xml.Append("<Age>");
+                xml.Append(EscapeXML(age));
+                xml.Append("</Age>");
+            }	
+            if (IsSetAmazonMaximumAge()) {
+                DecimalWithUnits  amazonMaximumAge = this.AmazonMaximumAge;
+                xml.Append("<AmazonMaximumAge Units=" + "\"" +  EscapeXML(amazonMaximumAge.Units)  + "\"" +  ">");
+                xml.Append(amazonMaximumAge.Value);
+                xml.Append("</AmazonMaximumAge>");
+            } 
+            if (IsSetAmazonMinimumAge()) {
+                DecimalWithUnits  amazonMinimumAge = this.AmazonMinimumAge;
+                xml.Append("<AmazonMinimumAge Units=" + "\"" +  EscapeXML(amazonMinimumAge.Units)  + "\"" +  ">");
+                xml.Append(amazonMinimumAge.Value);
+                xml.Append("</AmazonMinimumAge>");
+            } 
+            if (IsSetAnalogVideoFormat()) {
+                xml.Append("<AnalogVideoFormat>");
+                xml.Append(EscapeXML(this.AnalogVideoFormat));
+                xml.Append("</AnalogVideoFormat>");
+            }
+            if (IsSetApertureModes()) {
+                xml.Append("<ApertureModes>");
+                xml.Append(EscapeXML(this.ApertureModes));
+                xml.Append("</ApertureModes>");
+            }
+            List<String> artistList  =  this.Artist;
+            foreach (String artist in artistList) { 
+                xml.Append("<Artist>");
+                xml.Append(EscapeXML(artist));
+                xml.Append("</Artist>");
+            }	
+            if (IsSetAspectRatio()) {
+                xml.Append("<AspectRatio>");
+                xml.Append(EscapeXML(this.AspectRatio));
+                xml.Append("</AspectRatio>");
+            }
+            if (IsSetAssemblyInstructions()) {
+                xml.Append("<AssemblyInstructions>");
+                xml.Append(EscapeXML(this.AssemblyInstructions));
+                xml.Append("</AssemblyInstructions>");
+            }
+            if (IsSetAssemblyRequired()) {
+                xml.Append("<AssemblyRequired>");
+                xml.Append(EscapeXML(this.AssemblyRequired));
+                xml.Append("</AssemblyRequired>");
+            }
+            if (IsSetAudienceRating()) {
+                xml.Append("<AudienceRating>");
+                xml.Append(EscapeXML(this.AudienceRating));
+                xml.Append("</AudienceRating>");
+            }
+            List<String> audioFormatList  =  this.AudioFormat;
+            foreach (String audioFormat in audioFormatList) { 
+                xml.Append("<AudioFormat>");
+                xml.Append(EscapeXML(audioFormat));
+                xml.Append("</AudioFormat>");
+            }	
+            List<String> authorList  =  this.Author;
+            foreach (String author in authorList) { 
+                xml.Append("<Author>");
+                xml.Append(EscapeXML(author));
+                xml.Append("</Author>");
+            }	
+            if (IsSetBackFinding()) {
+                xml.Append("<BackFinding>");
+                xml.Append(EscapeXML(this.BackFinding));
+                xml.Append("</BackFinding>");
+            }
+            if (IsSetBandMaterialType()) {
+                xml.Append("<BandMaterialType>");
+                xml.Append(EscapeXML(this.BandMaterialType));
+                xml.Append("</BandMaterialType>");
+            }
+            if (IsSetBatteriesIncluded()) {
+                xml.Append("<BatteriesIncluded>");
+                xml.Append(EscapeXML(this.BatteriesIncluded));
+                xml.Append("</BatteriesIncluded>");
+            }
+            if (IsSetBatteriesRequired()) {
+                xml.Append("<BatteriesRequired>");
+                xml.Append(EscapeXML(this.BatteriesRequired));
+                xml.Append("</BatteriesRequired>");
+            }
+            if (IsSetBatteries()) {
+                NonNegativeIntegerWithUnits  batteries = this.Batteries;
+                xml.Append("<Batteries Units=" + "\"" +  EscapeXML(batteries.Units)  + "\"" +  ">");
+                xml.Append(batteries.Value);
+                xml.Append("</Batteries>");
+            } 
+            if (IsSetBatteryDescription()) {
+                xml.Append("<BatteryDescription>");
+                xml.Append(EscapeXML(this.BatteryDescription));
+                xml.Append("</BatteryDescription>");
+            }
+            if (IsSetBatteryType()) {
+                xml.Append("<BatteryType>");
+                xml.Append(EscapeXML(this.BatteryType));
+                xml.Append("</BatteryType>");
+            }
+            if (IsSetBezelMaterialType()) {
+                xml.Append("<BezelMaterialType>");
+                xml.Append(EscapeXML(this.BezelMaterialType));
+                xml.Append("</BezelMaterialType>");
+            }
+            if (IsSetBinding()) {
+                xml.Append("<Binding>");
+                xml.Append(EscapeXML(this.Binding));
+                xml.Append("</Binding>");
+            }
+            if (IsSetBrand()) {
+                xml.Append("<Brand>");
+                xml.Append(EscapeXML(this.Brand));
+                xml.Append("</Brand>");
+            }
+            if (IsSetCalendarType()) {
+                xml.Append("<CalendarType>");
+                xml.Append(EscapeXML(this.CalendarType));
+                xml.Append("</CalendarType>");
+            }
+            List<String> cameraManualFeaturesList  =  this.CameraManualFeatures;
+            foreach (String cameraManualFeatures in cameraManualFeaturesList) { 
+                xml.Append("<CameraManualFeatures>");
+                xml.Append(EscapeXML(cameraManualFeatures));
+                xml.Append("</CameraManualFeatures>");
+            }	
+            if (IsSetCaseDiameter()) {
+                DecimalWithUnits  caseDiameter = this.CaseDiameter;
+                xml.Append("<CaseDiameter Units=" + "\"" +  EscapeXML(caseDiameter.Units)  + "\"" +  ">");
+                xml.Append(caseDiameter.Value);
+                xml.Append("</CaseDiameter>");
+            } 
+            if (IsSetCaseMaterialType()) {
+                xml.Append("<CaseMaterialType>");
+                xml.Append(EscapeXML(this.CaseMaterialType));
+                xml.Append("</CaseMaterialType>");
+            }
+            if (IsSetCaseThickness()) {
+                DecimalWithUnits  caseThickness = this.CaseThickness;
+                xml.Append("<CaseThickness Units=" + "\"" +  EscapeXML(caseThickness.Units)  + "\"" +  ">");
+                xml.Append(caseThickness.Value);
+                xml.Append("</CaseThickness>");
+            } 
+            if (IsSetCaseType()) {
+                xml.Append("<CaseType>");
+                xml.Append(EscapeXML(this.CaseType));
+                xml.Append("</CaseType>");
+            }
+            if (IsSetCatalogNumber()) {
+                xml.Append("<CatalogNumber>");
+                xml.Append(EscapeXML(this.CatalogNumber));
+                xml.Append("</CatalogNumber>");
+            }
+            List<String> categoryList  =  this.Category;
+            foreach (String category in categoryList) { 
+                xml.Append("<Category>");
+                xml.Append(EscapeXML(category));
+                xml.Append("</Category>");
+            }	
+            List<String> categoryBinList  =  this.CategoryBin;
+            foreach (String categoryBin in categoryBinList) { 
+                xml.Append("<CategoryBin>");
+                xml.Append(EscapeXML(categoryBin));
+                xml.Append("</CategoryBin>");
+            }	
+            if (IsSetCDRWDescription()) {
+                xml.Append("<CDRWDescription>");
+                xml.Append(EscapeXML(this.CDRWDescription));
+                xml.Append("</CDRWDescription>");
+            }
+            if (IsSetChainType()) {
+                xml.Append("<ChainType>");
+                xml.Append(EscapeXML(this.ChainType));
+                xml.Append("</ChainType>");
+            }
+            List<String> characterList  =  this.Character;
+            foreach (String character in characterList) { 
+                xml.Append("<Character>");
+                xml.Append(EscapeXML(character));
+                xml.Append("</Character>");
+            }	
+            if (IsSetCEROAgeRating()) {
+                xml.Append("<CEROAgeRating>");
+                xml.Append(EscapeXML(this.CEROAgeRating));
+                xml.Append("</CEROAgeRating>");
+            }
+            if (IsSetClaspType()) {
+                xml.Append("<ClaspType>");
+                xml.Append(EscapeXML(this.ClaspType));
+                xml.Append("</ClaspType>");
+            }
+            if (IsSetClothingSize()) {
+                xml.Append("<ClothingSize>");
+                xml.Append(EscapeXML(this.ClothingSize));
+                xml.Append("</ClothingSize>");
+            }
+            if (IsSetClubType()) {
+                xml.Append("<ClubType>");
+                xml.Append(EscapeXML(this.ClubType));
+                xml.Append("</ClubType>");
+            }
+            if (IsSetColor()) {
+                xml.Append("<Color>");
+                xml.Append(EscapeXML(this.Color));
+                xml.Append("</Color>");
+            }
+            if (IsSetCompatibility()) {
+                xml.Append("<Compatibility>");
+                xml.Append(EscapeXML(this.Compatibility));
+                xml.Append("</Compatibility>");
+            }
+            List<String> compatibleDevicesList  =  this.CompatibleDevices;
+            foreach (String compatibleDevices in compatibleDevicesList) { 
+                xml.Append("<CompatibleDevices>");
+                xml.Append(EscapeXML(compatibleDevices));
+                xml.Append("</CompatibleDevices>");
+            }	
+            if (IsSetComputerHardwareType()) {
+                xml.Append("<ComputerHardwareType>");
+                xml.Append(EscapeXML(this.ComputerHardwareType));
+                xml.Append("</ComputerHardwareType>");
+            }
+            if (IsSetComputerPlatform()) {
+                xml.Append("<ComputerPlatform>");
+                xml.Append(EscapeXML(this.ComputerPlatform));
+                xml.Append("</ComputerPlatform>");
+            }
+            if (IsSetConnectivity()) {
+                xml.Append("<Connectivity>");
+                xml.Append(EscapeXML(this.Connectivity));
+                xml.Append("</Connectivity>");
+            }
+            if (IsSetContinuousShootingSpeed()) {
+                DecimalWithUnits  continuousShootingSpeed = this.ContinuousShootingSpeed;
+                xml.Append("<ContinuousShootingSpeed Units=" + "\"" +  EscapeXML(continuousShootingSpeed.Units)  + "\"" +  ">");
+                xml.Append(continuousShootingSpeed.Value);
+                xml.Append("</ContinuousShootingSpeed>");
+            } 
+            if (IsSetCountry()) {
+                xml.Append("<Country>");
+                xml.Append(EscapeXML(this.Country));
+                xml.Append("</Country>");
+            }
+            if (IsSetCPUManufacturer()) {
+                xml.Append("<CPUManufacturer>");
+                xml.Append(EscapeXML(this.CPUManufacturer));
+                xml.Append("</CPUManufacturer>");
+            }
+            if (IsSetCPUSpeed()) {
+                DecimalWithUnits  CPUSpeed = this.CPUSpeed;
+                xml.Append("<CPUSpeed Units=" + "\"" +  EscapeXML(CPUSpeed.Units)  + "\"" +  ">");
+                xml.Append(CPUSpeed.Value);
+                xml.Append("</CPUSpeed>");
+            } 
+            if (IsSetCPUType()) {
+                xml.Append("<CPUType>");
+                xml.Append(EscapeXML(this.CPUType));
+                xml.Append("</CPUType>");
+            }
+            List<Creator> creatorList = this.Creator;
+            foreach (Creator creator in creatorList) {
+                xml.Append("<Creator Role=" + "\"" +  EscapeXML(creator.Role)  + "\"" +  ">");
+                xml.Append(EscapeXML(creator.Value));
+                xml.Append("</Creator>");
+            }
+            if (IsSetCuisine()) {
+                xml.Append("<Cuisine>");
+                xml.Append(EscapeXML(this.Cuisine));
+                xml.Append("</Cuisine>");
+            }
+            List<String> dataLinkProtocolList  =  this.DataLinkProtocol;
+            foreach (String dataLinkProtocol in dataLinkProtocolList) { 
+                xml.Append("<DataLinkProtocol>");
+                xml.Append(EscapeXML(dataLinkProtocol));
+                xml.Append("</DataLinkProtocol>");
+            }	
+            if (IsSetDeliveryOption()) {
+                xml.Append("<DeliveryOption>");
+                xml.Append(EscapeXML(this.DeliveryOption));
+                xml.Append("</DeliveryOption>");
+            }
+            if (IsSetDelayBetweenShots()) {
+                DecimalWithUnits  delayBetweenShots = this.DelayBetweenShots;
+                xml.Append("<DelayBetweenShots Units=" + "\"" +  EscapeXML(delayBetweenShots.Units)  + "\"" +  ">");
+                xml.Append(delayBetweenShots.Value);
+                xml.Append("</DelayBetweenShots>");
+            } 
+            if (IsSetDepartment()) {
+                xml.Append("<Department>");
+                xml.Append(EscapeXML(this.Department));
+                xml.Append("</Department>");
+            }
+            if (IsSetDeweyDecimalNumber()) {
+                xml.Append("<DeweyDecimalNumber>");
+                xml.Append(EscapeXML(this.DeweyDecimalNumber));
+                xml.Append("</DeweyDecimalNumber>");
+            }
+            if (IsSetDialColor()) {
+                xml.Append("<DialColor>");
+                xml.Append(EscapeXML(this.DialColor));
+                xml.Append("</DialColor>");
+            }
+            if (IsSetDialWindowMaterialType()) {
+                xml.Append("<DialWindowMaterialType>");
+                xml.Append(EscapeXML(this.DialWindowMaterialType));
+                xml.Append("</DialWindowMaterialType>");
+            }
+            if (IsSetDigitalZoom()) {
+                DecimalWithUnits  digitalZoom = this.DigitalZoom;
+                xml.Append("<DigitalZoom Units=" + "\"" +  EscapeXML(digitalZoom.Units)  + "\"" +  ">");
+                xml.Append(digitalZoom.Value);
+                xml.Append("</DigitalZoom>");
+            } 
+            List<String> directorList  =  this.Director;
+            foreach (String director in directorList) { 
+                xml.Append("<Director>");
+                xml.Append(EscapeXML(director));
+                xml.Append("</Director>");
+            }	
+            if (IsSetDisplayColorSupport()) {
+                xml.Append("<DisplayColorSupport>");
+                xml.Append(EscapeXML(this.DisplayColorSupport));
+                xml.Append("</DisplayColorSupport>");
+            }
+            if (IsSetDisplaySize()) {
+                DecimalWithUnits  displaySize = this.DisplaySize;
+                xml.Append("<DisplaySize Units=" + "\"" +  EscapeXML(displaySize.Units)  + "\"" +  ">");
+                xml.Append(displaySize.Value);
+                xml.Append("</DisplaySize>");
+            } 
+            if (IsSetDrumSetPieceQuantity()) {
+                xml.Append("<DrumSetPieceQuantity>");
+                xml.Append(this.DrumSetPieceQuantity);
+                xml.Append("</DrumSetPieceQuantity>");
+            }
+            if (IsSetDVDLayers()) {
+                xml.Append("<DVDLayers>");
+                xml.Append(this.DVDLayers);
+                xml.Append("</DVDLayers>");
+            }
+            if (IsSetDVDRWDescription()) {
+                xml.Append("<DVDRWDescription>");
+                xml.Append(EscapeXML(this.DVDRWDescription));
+                xml.Append("</DVDRWDescription>");
+            }
+            if (IsSetDVDSides()) {
+                xml.Append("<DVDSides>");
+                xml.Append(this.DVDSides);
+                xml.Append("</DVDSides>");
+            }
+            if (IsSetDPCI()) {
+                xml.Append("<DPCI>");
+                xml.Append(EscapeXML(this.DPCI));
+                xml.Append("</DPCI>");
+            }
+            if (IsSetEAN()) {
+                xml.Append("<EAN>");
+                xml.Append(EscapeXML(this.EAN));
+                xml.Append("</EAN>");
+            }
+            if (IsSetEdition()) {
+                xml.Append("<Edition>");
+                xml.Append(EscapeXML(this.Edition));
+                xml.Append("</Edition>");
+            }
+            List<String> educationalFocusList  =  this.EducationalFocus;
+            foreach (String educationalFocus in educationalFocusList) { 
+                xml.Append("<EducationalFocus>");
+                xml.Append(EscapeXML(educationalFocus));
+                xml.Append("</EducationalFocus>");
+            }	
+            List<String> ethnicityList  =  this.Ethnicity;
+            foreach (String ethnicity in ethnicityList) { 
+                xml.Append("<Ethnicity>");
+                xml.Append(EscapeXML(ethnicity));
+                xml.Append("</Ethnicity>");
+            }	
+            if (IsSetESRBAgeRating()) {
+                xml.Append("<ESRBAgeRating>");
+                xml.Append(EscapeXML(this.ESRBAgeRating));
+                xml.Append("</ESRBAgeRating>");
+            }
+            if (IsSetExternalDisplaySupportDescription()) {
+                xml.Append("<ExternalDisplaySupportDescription>");
+                xml.Append(EscapeXML(this.ExternalDisplaySupportDescription));
+                xml.Append("</ExternalDisplaySupportDescription>");
+            }
+            if (IsSetFabricType()) {
+                xml.Append("<FabricType>");
+                xml.Append(EscapeXML(this.FabricType));
+                xml.Append("</FabricType>");
+            }
+            if (IsSetFaxNumber()) {
+                xml.Append("<FaxNumber>");
+                xml.Append(EscapeXML(this.FaxNumber));
+                xml.Append("</FaxNumber>");
+            }
+            List<String> featureList  =  this.Feature;
+            foreach (String feature in featureList) { 
+                xml.Append("<Feature>");
+                xml.Append(EscapeXML(feature));
+                xml.Append("</Feature>");
+            }	
+            if (IsSetFilmColorType()) {
+                xml.Append("<FilmColorType>");
+                xml.Append(EscapeXML(this.FilmColorType));
+                xml.Append("</FilmColorType>");
+            }
+            if (IsSetFirstIssueLeadTime()) {
+                StringWithUnits  firstIssueLeadTime = this.FirstIssueLeadTime;
+                xml.Append("<FirstIssueLeadTime Units=" + "\"" +  EscapeXML(firstIssueLeadTime.Units)  + "\"" +  ">");
+                xml.Append(EscapeXML(firstIssueLeadTime.Value));
+                xml.Append("</FirstIssueLeadTime>");
+            } 
+            if (IsSetFlavorName()) {
+                xml.Append("<FlavorName>");
+                xml.Append(EscapeXML(this.FlavorName));
+                xml.Append("</FlavorName>");
+            }
+            if (IsSetFloppyDiskDriveDescription()) {
+                xml.Append("<FloppyDiskDriveDescription>");
+                xml.Append(EscapeXML(this.FloppyDiskDriveDescription));
+                xml.Append("</FloppyDiskDriveDescription>");
+            }
+            List<String> formatList  =  this.Format;
+            foreach (String format in formatList) { 
+                xml.Append("<Format>");
+                xml.Append(EscapeXML(format));
+                xml.Append("</Format>");
+            }	
+            List<String> formFactorList  =  this.FormFactor;
+            foreach (String formFactor in formFactorList) { 
+                xml.Append("<FormFactor>");
+                xml.Append(EscapeXML(formFactor));
+                xml.Append("</FormFactor>");
+            }	
+            if (IsSetGemType()) {
+                xml.Append("<GemType>");
+                xml.Append(EscapeXML(this.GemType));
+                xml.Append("</GemType>");
+            }
+            List<String> gemTypeSetElementList  =  this.GemTypeSetElement;
+            foreach (String gemTypeSetElement in gemTypeSetElementList) { 
+                xml.Append("<GemTypeSetElement>");
+                xml.Append(EscapeXML(gemTypeSetElement));
+                xml.Append("</GemTypeSetElement>");
+            }	
+            List<String> genderList  =  this.Gender;
+            foreach (String gender in genderList) { 
+                xml.Append("<Gender>");
+                xml.Append(EscapeXML(gender));
+                xml.Append("</Gender>");
+            }	
+            if (IsSetGenre()) {
+                xml.Append("<Genre>");
+                xml.Append(EscapeXML(this.Genre));
+                xml.Append("</Genre>");
+            }
+            if (IsSetGLProductGroup()) {
+                xml.Append("<GLProductGroup>");
+                xml.Append(EscapeXML(this.GLProductGroup));
+                xml.Append("</GLProductGroup>");
+            }
+            if (IsSetGolfClubFlex()) {
+                xml.Append("<GolfClubFlex>");
+                xml.Append(EscapeXML(this.GolfClubFlex));
+                xml.Append("</GolfClubFlex>");
+            }
+            if (IsSetGolfClubLoft()) {
+                xml.Append("<GolfClubLoft>");
+                xml.Append(EscapeXML(this.GolfClubLoft));
+                xml.Append("</GolfClubLoft>");
+            }
+            if (IsSetGraphicsCardInterface()) {
+                xml.Append("<GraphicsCardInterface>");
+                xml.Append(EscapeXML(this.GraphicsCardInterface));
+                xml.Append("</GraphicsCardInterface>");
+            }
+            if (IsSetGraphicsDescription()) {
+                xml.Append("<GraphicsDescription>");
+                xml.Append(EscapeXML(this.GraphicsDescription));
+                xml.Append("</GraphicsDescription>");
+            }
+            if (IsSetGraphicsMemorySize()) {
+                DecimalWithUnits  graphicsMemorySize = this.GraphicsMemorySize;
+                xml.Append("<GraphicsMemorySize Units=" + "\"" +  EscapeXML(graphicsMemorySize.Units)  + "\"" +  ">");
+                xml.Append(graphicsMemorySize.Value);
+                xml.Append("</GraphicsMemorySize>");
+            } 
+            if (IsSetGuitarAttribute()) {
+                xml.Append("<GuitarAttribute>");
+                xml.Append(EscapeXML(this.GuitarAttribute));
+                xml.Append("</GuitarAttribute>");
+            }
+            if (IsSetGuitarBridgeSystem()) {
+                xml.Append("<GuitarBridgeSystem>");
+                xml.Append(EscapeXML(this.GuitarBridgeSystem));
+                xml.Append("</GuitarBridgeSystem>");
+            }
+            if (IsSetGuitarPickThickness()) {
+                xml.Append("<GuitarPickThickness>");
+                xml.Append(EscapeXML(this.GuitarPickThickness));
+                xml.Append("</GuitarPickThickness>");
+            }
+            if (IsSetGuitarPickupConfiguration()) {
+                xml.Append("<GuitarPickupConfiguration>");
+                xml.Append(EscapeXML(this.GuitarPickupConfiguration));
+                xml.Append("</GuitarPickupConfiguration>");
+            }
+            if (IsSetHandOrientation()) {
+                xml.Append("<HandOrientation>");
+                xml.Append(EscapeXML(this.HandOrientation));
+                xml.Append("</HandOrientation>");
+            }
+            if (IsSetHardDiskCount()) {
+                xml.Append("<HardDiskCount>");
+                xml.Append(this.HardDiskCount);
+                xml.Append("</HardDiskCount>");
+            }
+            if (IsSetHardDiskSize()) {
+                DecimalWithUnits  hardDiskSize = this.HardDiskSize;
+                xml.Append("<HardDiskSize Units=" + "\"" +  EscapeXML(hardDiskSize.Units)  + "\"" +  ">");
+                xml.Append(hardDiskSize.Value);
+                xml.Append("</HardDiskSize>");
+            } 
+            if (IsSetHardDiskInterface()) {
+                xml.Append("<HardDiskInterface>");
+                xml.Append(EscapeXML(this.HardDiskInterface));
+                xml.Append("</HardDiskInterface>");
+            }
+            if (IsSetHardwarePlatform()) {
+                xml.Append("<HardwarePlatform>");
+                xml.Append(EscapeXML(this.HardwarePlatform));
+                xml.Append("</HardwarePlatform>");
+            }
+            if (IsSetHasAutoFocus()) {
+                xml.Append("<HasAutoFocus>");
+                xml.Append(this.HasAutoFocus);
+                xml.Append("</HasAutoFocus>");
+            }
+            if (IsSetHasBurstMode()) {
+                xml.Append("<HasBurstMode>");
+                xml.Append(this.HasBurstMode);
+                xml.Append("</HasBurstMode>");
+            }
+            if (IsSetHasInCameraEditing()) {
+                xml.Append("<HasInCameraEditing>");
+                xml.Append(this.HasInCameraEditing);
+                xml.Append("</HasInCameraEditing>");
+            }
+            if (IsSetHasRedEyeReduction()) {
+                xml.Append("<HasRedEyeReduction>");
+                xml.Append(this.HasRedEyeReduction);
+                xml.Append("</HasRedEyeReduction>");
+            }
+            if (IsSetHasSelfTimer()) {
+                xml.Append("<HasSelfTimer>");
+                xml.Append(this.HasSelfTimer);
+                xml.Append("</HasSelfTimer>");
+            }
+            if (IsSetHasTripodMount()) {
+                xml.Append("<HasTripodMount>");
+                xml.Append(this.HasTripodMount);
+                xml.Append("</HasTripodMount>");
+            }
+            if (IsSetHasVideoOut()) {
+                xml.Append("<HasVideoOut>");
+                xml.Append(this.HasVideoOut);
+                xml.Append("</HasVideoOut>");
+            }
+            if (IsSetHasViewfinder()) {
+                xml.Append("<HasViewfinder>");
+                xml.Append(this.HasViewfinder);
+                xml.Append("</HasViewfinder>");
+            }
+            if (IsSetHazardousMaterialType()) {
+                xml.Append("<HazardousMaterialType>");
+                xml.Append(EscapeXML(this.HazardousMaterialType));
+                xml.Append("</HazardousMaterialType>");
+            }
+            if (IsSetHoursOfOperation()) {
+                xml.Append("<HoursOfOperation>");
+                xml.Append(EscapeXML(this.HoursOfOperation));
+                xml.Append("</HoursOfOperation>");
+            }
+            if (IsSetIncludedSoftware()) {
+                xml.Append("<IncludedSoftware>");
+                xml.Append(EscapeXML(this.IncludedSoftware));
+                xml.Append("</IncludedSoftware>");
+            }
+            if (IsSetIncludesMp3Player()) {
+                xml.Append("<IncludesMp3Player>");
+                xml.Append(this.IncludesMp3Player);
+                xml.Append("</IncludesMp3Player>");
+            }
+            if (IsSetIngredients()) {
+                xml.Append("<Ingredients>");
+                xml.Append(EscapeXML(this.Ingredients));
+                xml.Append("</Ingredients>");
+            }
+            List<String> ingredientsSetElementList  =  this.IngredientsSetElement;
+            foreach (String ingredientsSetElement in ingredientsSetElementList) { 
+                xml.Append("<IngredientsSetElement>");
+                xml.Append(EscapeXML(ingredientsSetElement));
+                xml.Append("</IngredientsSetElement>");
+            }	
+            if (IsSetInstrumentKey()) {
+                xml.Append("<InstrumentKey>");
+                xml.Append(EscapeXML(this.InstrumentKey));
+                xml.Append("</InstrumentKey>");
+            }
+            List<String> interestList  =  this.Interest;
+            foreach (String interest in interestList) { 
+                xml.Append("<Interest>");
+                xml.Append(EscapeXML(interest));
+                xml.Append("</Interest>");
+            }	
+            if (IsSetIsAdultProduct()) {
+                xml.Append("<IsAdultProduct>");
+                xml.Append(this.IsAdultProduct);
+                xml.Append("</IsAdultProduct>");
+            }
+            if (IsSetIsAutographed()) {
+                xml.Append("<IsAutographed>");
+                xml.Append(this.IsAutographed);
+                xml.Append("</IsAutographed>");
+            }
+            if (IsSetISBN()) {
+                xml.Append("<ISBN>");
+                xml.Append(EscapeXML(this.ISBN));
+                xml.Append("</ISBN>");
+            }
+            if (IsSetIsFragile()) {
+                xml.Append("<IsFragile>");
+                xml.Append(this.IsFragile);
+                xml.Append("</IsFragile>");
+            }
+            if (IsSetIsLabCreated()) {
+                xml.Append("<IsLabCreated>");
+                xml.Append(this.IsLabCreated);
+                xml.Append("</IsLabCreated>");
+            }
+            if (IsSetIsMemorabilia()) {
+                xml.Append("<IsMemorabilia>");
+                xml.Append(this.IsMemorabilia);
+                xml.Append("</IsMemorabilia>");
+            }
+            if (IsSetISOEquivalent()) {
+                NonNegativeIntegerWithUnits  ISOEquivalent = this.ISOEquivalent;
+                xml.Append("<ISOEquivalent Units=" + "\"" +  EscapeXML(ISOEquivalent.Units)  + "\"" +  ">");
+                xml.Append(ISOEquivalent.Value);
+                xml.Append("</ISOEquivalent>");
+            } 
+            if (IsSetIsPreannounce()) {
+                xml.Append("<IsPreannounce>");
+                xml.Append(this.IsPreannounce);
+                xml.Append("</IsPreannounce>");
+            }
+            if (IsSetIssuesPerYear()) {
+                xml.Append("<IssuesPerYear>");
+                xml.Append(EscapeXML(this.IssuesPerYear));
+                xml.Append("</IssuesPerYear>");
+            }
+            if (IsSetItemDimensions()) {
+                ItemDimensions  itemDimensions = this.ItemDimensions;
+                xml.Append("<ItemDimensions>");
+                xml.Append(itemDimensions.ToXMLFragment());
+                xml.Append("</ItemDimensions>");
+            } 
+            if (IsSetKeyboardDescription()) {
+                xml.Append("<KeyboardDescription>");
+                xml.Append(EscapeXML(this.KeyboardDescription));
+                xml.Append("</KeyboardDescription>");
+            }
+            if (IsSetLabel()) {
+                xml.Append("<Label>");
+                xml.Append(EscapeXML(this.Label));
+                xml.Append("</Label>");
+            }
+            List<String> languageNameList  =  this.LanguageName;
+            foreach (String languageName in languageNameList) { 
+                xml.Append("<LanguageName>");
+                xml.Append(EscapeXML(languageName));
+                xml.Append("</LanguageName>");
+            }	
+            if (IsSetLanguages()) {
+                Languages  languages = this.Languages;
+                xml.Append("<Languages>");
+                xml.Append(languages.ToXMLFragment());
+                xml.Append("</Languages>");
+            } 
+            if (IsSetLegalDisclaimer()) {
+                xml.Append("<LegalDisclaimer>");
+                xml.Append(EscapeXML(this.LegalDisclaimer));
+                xml.Append("</LegalDisclaimer>");
+            }
+            if (IsSetLensType()) {
+                xml.Append("<LensType>");
+                xml.Append(EscapeXML(this.LensType));
+                xml.Append("</LensType>");
+            }
+            if (IsSetLineVoltage()) {
+                xml.Append("<LineVoltage>");
+                xml.Append(EscapeXML(this.LineVoltage));
+                xml.Append("</LineVoltage>");
+            }
+            if (IsSetListPrice()) {
+                Price  listPrice = this.ListPrice;
+                xml.Append("<ListPrice>");
+                xml.Append(listPrice.ToXMLFragment());
+                xml.Append("</ListPrice>");
+            } 
+            if (IsSetMacroFocusRange()) {
+                xml.Append("<MacroFocusRange>");
+                xml.Append(EscapeXML(this.MacroFocusRange));
+                xml.Append("</MacroFocusRange>");
+            }
+            if (IsSetMagazineType()) {
+                xml.Append("<MagazineType>");
+                xml.Append(EscapeXML(this.MagazineType));
+                xml.Append("</MagazineType>");
+            }
+            if (IsSetMalletHardness()) {
+                xml.Append("<MalletHardness>");
+                xml.Append(EscapeXML(this.MalletHardness));
+                xml.Append("</MalletHardness>");
+            }
+            if (IsSetManufacturer()) {
+                xml.Append("<Manufacturer>");
+                xml.Append(EscapeXML(this.Manufacturer));
+                xml.Append("</Manufacturer>");
+            }
+            if (IsSetManufacturerLaborWarrantyDescription()) {
+                xml.Append("<ManufacturerLaborWarrantyDescription>");
+                xml.Append(EscapeXML(this.ManufacturerLaborWarrantyDescription));
+                xml.Append("</ManufacturerLaborWarrantyDescription>");
+            }
+            if (IsSetManufacturerMaximumAge()) {
+                DecimalWithUnits  manufacturerMaximumAge = this.ManufacturerMaximumAge;
+                xml.Append("<ManufacturerMaximumAge Units=" + "\"" +  EscapeXML(manufacturerMaximumAge.Units)  + "\"" +  ">");
+                xml.Append(manufacturerMaximumAge.Value);
+                xml.Append("</ManufacturerMaximumAge>");
+            } 
+            if (IsSetManufacturerMinimumAge()) {
+                DecimalWithUnits  manufacturerMinimumAge = this.ManufacturerMinimumAge;
+                xml.Append("<ManufacturerMinimumAge Units=" + "\"" +  EscapeXML(manufacturerMinimumAge.Units)  + "\"" +  ">");
+                xml.Append(manufacturerMinimumAge.Value);
+                xml.Append("</ManufacturerMinimumAge>");
+            } 
+            if (IsSetManufacturerPartsWarrantyDescription()) {
+                xml.Append("<ManufacturerPartsWarrantyDescription>");
+                xml.Append(EscapeXML(this.ManufacturerPartsWarrantyDescription));
+                xml.Append("</ManufacturerPartsWarrantyDescription>");
+            }
+            if (IsSetMaterialType()) {
+                xml.Append("<MaterialType>");
+                xml.Append(EscapeXML(this.MaterialType));
+                xml.Append("</MaterialType>");
+            }
+            List<String> materialTypeSetElementList  =  this.MaterialTypeSetElement;
+            foreach (String materialTypeSetElement in materialTypeSetElementList) { 
+                xml.Append("<MaterialTypeSetElement>");
+                xml.Append(EscapeXML(materialTypeSetElement));
+                xml.Append("</MaterialTypeSetElement>");
+            }	
+            if (IsSetMaximumAperture()) {
+                DecimalWithUnits  maximumAperture = this.MaximumAperture;
+                xml.Append("<MaximumAperture Units=" + "\"" +  EscapeXML(maximumAperture.Units)  + "\"" +  ">");
+                xml.Append(maximumAperture.Value);
+                xml.Append("</MaximumAperture>");
+            } 
+            if (IsSetMaximumColorDepth()) {
+                xml.Append("<MaximumColorDepth>");
+                xml.Append(EscapeXML(this.MaximumColorDepth));
+                xml.Append("</MaximumColorDepth>");
+            }
+            if (IsSetMaximumFocalLength()) {
+                DecimalWithUnits  maximumFocalLength = this.MaximumFocalLength;
+                xml.Append("<MaximumFocalLength Units=" + "\"" +  EscapeXML(maximumFocalLength.Units)  + "\"" +  ">");
+                xml.Append(maximumFocalLength.Value);
+                xml.Append("</MaximumFocalLength>");
+            } 
+            if (IsSetMaximumHighResolutionImages()) {
+                NonNegativeIntegerWithUnits  maximumHighResolutionImages = this.MaximumHighResolutionImages;
+                xml.Append("<MaximumHighResolutionImages Units=" + "\"" +  EscapeXML(maximumHighResolutionImages.Units)  + "\"" +  ">");
+                xml.Append(maximumHighResolutionImages.Value);
+                xml.Append("</MaximumHighResolutionImages>");
+            } 
+            if (IsSetMaximumHorizontalResolution()) {
+                NonNegativeIntegerWithUnits  maximumHorizontalResolution = this.MaximumHorizontalResolution;
+                xml.Append("<MaximumHorizontalResolution Units=" + "\"" +  EscapeXML(maximumHorizontalResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumHorizontalResolution.Value);
+                xml.Append("</MaximumHorizontalResolution>");
+            } 
+            if (IsSetMaximumLowResolutionImages()) {
+                xml.Append("<MaximumLowResolutionImages>");
+                xml.Append(EscapeXML(this.MaximumLowResolutionImages));
+                xml.Append("</MaximumLowResolutionImages>");
+            }
+            if (IsSetMaximumResolution()) {
+                DecimalWithUnits  maximumResolution = this.MaximumResolution;
+                xml.Append("<MaximumResolution Units=" + "\"" +  EscapeXML(maximumResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumResolution.Value);
+                xml.Append("</MaximumResolution>");
+            } 
+            if (IsSetMaximumShutterSpeed()) {
+                DecimalWithUnits  maximumShutterSpeed = this.MaximumShutterSpeed;
+                xml.Append("<MaximumShutterSpeed Units=" + "\"" +  EscapeXML(maximumShutterSpeed.Units)  + "\"" +  ">");
+                xml.Append(maximumShutterSpeed.Value);
+                xml.Append("</MaximumShutterSpeed>");
+            } 
+            if (IsSetMaximumVerticalResolution()) {
+                NonNegativeIntegerWithUnits  maximumVerticalResolution = this.MaximumVerticalResolution;
+                xml.Append("<MaximumVerticalResolution Units=" + "\"" +  EscapeXML(maximumVerticalResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumVerticalResolution.Value);
+                xml.Append("</MaximumVerticalResolution>");
+            } 
+            if (IsSetMaximumWeightRecommendation()) {
+                DecimalWithUnits  maximumWeightRecommendation = this.MaximumWeightRecommendation;
+                xml.Append("<MaximumWeightRecommendation Units=" + "\"" +  EscapeXML(maximumWeightRecommendation.Units)  + "\"" +  ">");
+                xml.Append(maximumWeightRecommendation.Value);
+                xml.Append("</MaximumWeightRecommendation>");
+            } 
+            if (IsSetMediaType()) {
+                xml.Append("<MediaType>");
+                xml.Append(EscapeXML(this.MediaType));
+                xml.Append("</MediaType>");
+            }
+            if (IsSetMemorySlotsAvailable()) {
+                xml.Append("<MemorySlotsAvailable>");
+                xml.Append(EscapeXML(this.MemorySlotsAvailable));
+                xml.Append("</MemorySlotsAvailable>");
+            }
+            if (IsSetMetalStamp()) {
+                xml.Append("<MetalStamp>");
+                xml.Append(EscapeXML(this.MetalStamp));
+                xml.Append("</MetalStamp>");
+            }
+            if (IsSetMetalType()) {
+                xml.Append("<MetalType>");
+                xml.Append(EscapeXML(this.MetalType));
+                xml.Append("</MetalType>");
+            }
+            if (IsSetMiniMovieDescription()) {
+                xml.Append("<MiniMovieDescription>");
+                xml.Append(EscapeXML(this.MiniMovieDescription));
+                xml.Append("</MiniMovieDescription>");
+            }
+            if (IsSetMinimumFocalLength()) {
+                DecimalWithUnits  minimumFocalLength = this.MinimumFocalLength;
+                xml.Append("<MinimumFocalLength Units=" + "\"" +  EscapeXML(minimumFocalLength.Units)  + "\"" +  ">");
+                xml.Append(minimumFocalLength.Value);
+                xml.Append("</MinimumFocalLength>");
+            } 
+            if (IsSetMinimumShutterSpeed()) {
+                DecimalWithUnits  minimumShutterSpeed = this.MinimumShutterSpeed;
+                xml.Append("<MinimumShutterSpeed Units=" + "\"" +  EscapeXML(minimumShutterSpeed.Units)  + "\"" +  ">");
+                xml.Append(minimumShutterSpeed.Value);
+                xml.Append("</MinimumShutterSpeed>");
+            } 
+            if (IsSetModel()) {
+                xml.Append("<Model>");
+                xml.Append(EscapeXML(this.Model));
+                xml.Append("</Model>");
+            }
+            if (IsSetModelYear()) {
+                xml.Append("<ModelYear>");
+                xml.Append(this.ModelYear);
+                xml.Append("</ModelYear>");
+            }
+            if (IsSetModemDescription()) {
+                xml.Append("<ModemDescription>");
+                xml.Append(EscapeXML(this.ModemDescription));
+                xml.Append("</ModemDescription>");
+            }
+            if (IsSetMonitorSize()) {
+                DecimalWithUnits  monitorSize = this.MonitorSize;
+                xml.Append("<MonitorSize Units=" + "\"" +  EscapeXML(monitorSize.Units)  + "\"" +  ">");
+                xml.Append(monitorSize.Value);
+                xml.Append("</MonitorSize>");
+            } 
+            if (IsSetMonitorViewableDiagonalSize()) {
+                DecimalWithUnits  monitorViewableDiagonalSize = this.MonitorViewableDiagonalSize;
+                xml.Append("<MonitorViewableDiagonalSize Units=" + "\"" +  EscapeXML(monitorViewableDiagonalSize.Units)  + "\"" +  ">");
+                xml.Append(monitorViewableDiagonalSize.Value);
+                xml.Append("</MonitorViewableDiagonalSize>");
+            } 
+            if (IsSetMouseDescription()) {
+                xml.Append("<MouseDescription>");
+                xml.Append(EscapeXML(this.MouseDescription));
+                xml.Append("</MouseDescription>");
+            }
+            if (IsSetMPN()) {
+                xml.Append("<MPN>");
+                xml.Append(EscapeXML(this.MPN));
+                xml.Append("</MPN>");
+            }
+            if (IsSetMusicalStyle()) {
+                xml.Append("<MusicalStyle>");
+                xml.Append(EscapeXML(this.MusicalStyle));
+                xml.Append("</MusicalStyle>");
+            }
+            if (IsSetNativeResolution()) {
+                xml.Append("<NativeResolution>");
+                xml.Append(EscapeXML(this.NativeResolution));
+                xml.Append("</NativeResolution>");
+            }
+            if (IsSetNeighborhood()) {
+                xml.Append("<Neighborhood>");
+                xml.Append(EscapeXML(this.Neighborhood));
+                xml.Append("</Neighborhood>");
+            }
+            if (IsSetNetworkInterfaceDescription()) {
+                xml.Append("<NetworkInterfaceDescription>");
+                xml.Append(EscapeXML(this.NetworkInterfaceDescription));
+                xml.Append("</NetworkInterfaceDescription>");
+            }
+            if (IsSetNotebookDisplayTechnology()) {
+                xml.Append("<NotebookDisplayTechnology>");
+                xml.Append(EscapeXML(this.NotebookDisplayTechnology));
+                xml.Append("</NotebookDisplayTechnology>");
+            }
+            if (IsSetNotebookPointingDeviceDescription()) {
+                xml.Append("<NotebookPointingDeviceDescription>");
+                xml.Append(EscapeXML(this.NotebookPointingDeviceDescription));
+                xml.Append("</NotebookPointingDeviceDescription>");
+            }
+            if (IsSetNumberOfDiscs()) {
+                xml.Append("<NumberOfDiscs>");
+                xml.Append(this.NumberOfDiscs);
+                xml.Append("</NumberOfDiscs>");
+            }
+            if (IsSetNumberOfIssues()) {
+                xml.Append("<NumberOfIssues>");
+                xml.Append(this.NumberOfIssues);
+                xml.Append("</NumberOfIssues>");
+            }
+            if (IsSetNumberOfItems()) {
+                xml.Append("<NumberOfItems>");
+                xml.Append(this.NumberOfItems);
+                xml.Append("</NumberOfItems>");
+            }
+            if (IsSetNumberOfKeys()) {
+                xml.Append("<NumberOfKeys>");
+                xml.Append(this.NumberOfKeys);
+                xml.Append("</NumberOfKeys>");
+            }
+            if (IsSetNumberOfPages()) {
+                xml.Append("<NumberOfPages>");
+                xml.Append(this.NumberOfPages);
+                xml.Append("</NumberOfPages>");
+            }
+            if (IsSetNumberOfPearls()) {
+                xml.Append("<NumberOfPearls>");
+                xml.Append(this.NumberOfPearls);
+                xml.Append("</NumberOfPearls>");
+            }
+            if (IsSetNumberOfRapidFireShots()) {
+                xml.Append("<NumberOfRapidFireShots>");
+                xml.Append(this.NumberOfRapidFireShots);
+                xml.Append("</NumberOfRapidFireShots>");
+            }
+            if (IsSetNumberOfStones()) {
+                xml.Append("<NumberOfStones>");
+                xml.Append(this.NumberOfStones);
+                xml.Append("</NumberOfStones>");
+            }
+            if (IsSetNumberOfStrings()) {
+                xml.Append("<NumberOfStrings>");
+                xml.Append(this.NumberOfStrings);
+                xml.Append("</NumberOfStrings>");
+            }
+            if (IsSetNumberOfTracks()) {
+                xml.Append("<NumberOfTracks>");
+                xml.Append(this.NumberOfTracks);
+                xml.Append("</NumberOfTracks>");
+            }
+            if (IsSetOperatingSystem()) {
+                xml.Append("<OperatingSystem>");
+                xml.Append(EscapeXML(this.OperatingSystem));
+                xml.Append("</OperatingSystem>");
+            }
+            if (IsSetOpticalSensorResolution()) {
+                DecimalWithUnits  opticalSensorResolution = this.OpticalSensorResolution;
+                xml.Append("<OpticalSensorResolution Units=" + "\"" +  EscapeXML(opticalSensorResolution.Units)  + "\"" +  ">");
+                xml.Append(opticalSensorResolution.Value);
+                xml.Append("</OpticalSensorResolution>");
+            } 
+            if (IsSetOpticalZoom()) {
+                DecimalWithUnits  opticalZoom = this.OpticalZoom;
+                xml.Append("<OpticalZoom Units=" + "\"" +  EscapeXML(opticalZoom.Units)  + "\"" +  ">");
+                xml.Append(opticalZoom.Value);
+                xml.Append("</OpticalZoom>");
+            } 
+            if (IsSetOriginalReleaseDate()) {
+                xml.Append("<OriginalReleaseDate>");
+                xml.Append(EscapeXML(this.OriginalReleaseDate));
+                xml.Append("</OriginalReleaseDate>");
+            }
+            if (IsSetOutputWattage()) {
+                xml.Append("<OutputWattage>");
+                xml.Append(this.OutputWattage);
+                xml.Append("</OutputWattage>");
+            }
+            if (IsSetPackageDimensions()) {
+                PackageDimensions  packageDimensions = this.PackageDimensions;
+                xml.Append("<PackageDimensions>");
+                xml.Append(packageDimensions.ToXMLFragment());
+                xml.Append("</PackageDimensions>");
+            } 
+            if (IsSetPackageQuantity()) {
+                xml.Append("<PackageQuantity>");
+                xml.Append(this.PackageQuantity);
+                xml.Append("</PackageQuantity>");
+            }
+            List<String> pantLengthList  =  this.PantLength;
+            foreach (String pantLength in pantLengthList) { 
+                xml.Append("<PantLength>");
+                xml.Append(EscapeXML(pantLength));
+                xml.Append("</PantLength>");
+            }	
+            List<String> pantSizeList  =  this.PantSize;
+            foreach (String pantSize in pantSizeList) { 
+                xml.Append("<PantSize>");
+                xml.Append(EscapeXML(pantSize));
+                xml.Append("</PantSize>");
+            }	
+            if (IsSetPearlLustre()) {
+                xml.Append("<PearlLustre>");
+                xml.Append(EscapeXML(this.PearlLustre));
+                xml.Append("</PearlLustre>");
+            }
+            if (IsSetPearlMinimumColor()) {
+                xml.Append("<PearlMinimumColor>");
+                xml.Append(EscapeXML(this.PearlMinimumColor));
+                xml.Append("</PearlMinimumColor>");
+            }
+            if (IsSetPearlShape()) {
+                xml.Append("<PearlShape>");
+                xml.Append(EscapeXML(this.PearlShape));
+                xml.Append("</PearlShape>");
+            }
+            if (IsSetPearlStringingMethod()) {
+                xml.Append("<PearlStringingMethod>");
+                xml.Append(EscapeXML(this.PearlStringingMethod));
+                xml.Append("</PearlStringingMethod>");
+            }
+            if (IsSetPearlSurfaceBlemishes()) {
+                xml.Append("<PearlSurfaceBlemishes>");
+                xml.Append(EscapeXML(this.PearlSurfaceBlemishes));
+                xml.Append("</PearlSurfaceBlemishes>");
+            }
+            if (IsSetPearlType()) {
+                xml.Append("<PearlType>");
+                xml.Append(EscapeXML(this.PearlType));
+                xml.Append("</PearlType>");
+            }
+            if (IsSetPearlUniformity()) {
+                xml.Append("<PearlUniformity>");
+                xml.Append(EscapeXML(this.PearlUniformity));
+                xml.Append("</PearlUniformity>");
+            }
+            if (IsSetPhoneNumber()) {
+                xml.Append("<PhoneNumber>");
+                xml.Append(EscapeXML(this.PhoneNumber));
+                xml.Append("</PhoneNumber>");
+            }
+            List<String> photoFlashTypeList  =  this.PhotoFlashType;
+            foreach (String photoFlashType in photoFlashTypeList) { 
+                xml.Append("<PhotoFlashType>");
+                xml.Append(EscapeXML(photoFlashType));
+                xml.Append("</PhotoFlashType>");
+            }	
+            List<String> pictureFormatList  =  this.PictureFormat;
+            foreach (String pictureFormat in pictureFormatList) { 
+                xml.Append("<PictureFormat>");
+                xml.Append(EscapeXML(pictureFormat));
+                xml.Append("</PictureFormat>");
+            }	
+            List<String> platformList  =  this.Platform;
+            foreach (String platform in platformList) { 
+                xml.Append("<Platform>");
+                xml.Append(EscapeXML(platform));
+                xml.Append("</Platform>");
+            }	
+            if (IsSetPriceRating()) {
+                xml.Append("<PriceRating>");
+                xml.Append(this.PriceRating);
+                xml.Append("</PriceRating>");
+            }
+            List<String> primaryColorList  =  this.PrimaryColor;
+            foreach (String primaryColor in primaryColorList) { 
+                xml.Append("<PrimaryColor>");
+                xml.Append(EscapeXML(primaryColor));
+                xml.Append("</PrimaryColor>");
+            }	
+            if (IsSetProcessorCount()) {
+                xml.Append("<ProcessorCount>");
+                xml.Append(this.ProcessorCount);
+                xml.Append("</ProcessorCount>");
+            }
+            if (IsSetProductGroup()) {
+                xml.Append("<ProductGroup>");
+                xml.Append(EscapeXML(this.ProductGroup));
+                xml.Append("</ProductGroup>");
+            }
+            if (IsSetProductSiteLaunchDate()) {
+                xml.Append("<ProductSiteLaunchDate>");
+                xml.Append(EscapeXML(this.ProductSiteLaunchDate));
+                xml.Append("</ProductSiteLaunchDate>");
+            }
+            if (IsSetProductTypeName()) {
+                xml.Append("<ProductTypeName>");
+                xml.Append(EscapeXML(this.ProductTypeName));
+                xml.Append("</ProductTypeName>");
+            }
+            if (IsSetProductTypeSubcategory()) {
+                xml.Append("<ProductTypeSubcategory>");
+                xml.Append(EscapeXML(this.ProductTypeSubcategory));
+                xml.Append("</ProductTypeSubcategory>");
+            }
+            if (IsSetPromotionalTag()) {
+                xml.Append("<PromotionalTag>");
+                xml.Append(EscapeXML(this.PromotionalTag));
+                xml.Append("</PromotionalTag>");
+            }
+            if (IsSetPublicationDate()) {
+                xml.Append("<PublicationDate>");
+                xml.Append(EscapeXML(this.PublicationDate));
+                xml.Append("</PublicationDate>");
+            }
+            if (IsSetPublisher()) {
+                xml.Append("<Publisher>");
+                xml.Append(EscapeXML(this.Publisher));
+                xml.Append("</Publisher>");
+            }
+            if (IsSetPOBoxShippingExcluded()) {
+                xml.Append("<POBoxShippingExcluded>");
+                xml.Append(EscapeXML(this.POBoxShippingExcluded));
+                xml.Append("</POBoxShippingExcluded>");
+            }
+            if (IsSetReadingLevel()) {
+                xml.Append("<ReadingLevel>");
+                xml.Append(EscapeXML(this.ReadingLevel));
+                xml.Append("</ReadingLevel>");
+            }
+            List<String> returnMethodList  =  this.ReturnMethod;
+            foreach (String returnMethod in returnMethodList) { 
+                xml.Append("<ReturnMethod>");
+                xml.Append(EscapeXML(returnMethod));
+                xml.Append("</ReturnMethod>");
+            }	
+            if (IsSetRecorderTrackCount()) {
+                xml.Append("<RecorderTrackCount>");
+                xml.Append(this.RecorderTrackCount);
+                xml.Append("</RecorderTrackCount>");
+            }
+            if (IsSetRegionCode()) {
+                xml.Append("<RegionCode>");
+                xml.Append(EscapeXML(this.RegionCode));
+                xml.Append("</RegionCode>");
+            }
+            if (IsSetRegionOfOrigin()) {
+                xml.Append("<RegionOfOrigin>");
+                xml.Append(EscapeXML(this.RegionOfOrigin));
+                xml.Append("</RegionOfOrigin>");
+            }
+            if (IsSetReturnPolicy()) {
+                xml.Append("<ReturnPolicy>");
+                xml.Append(EscapeXML(this.ReturnPolicy));
+                xml.Append("</ReturnPolicy>");
+            }
+            if (IsSetReleaseDate()) {
+                xml.Append("<ReleaseDate>");
+                xml.Append(EscapeXML(this.ReleaseDate));
+                xml.Append("</ReleaseDate>");
+            }
+            if (IsSetRemovableMemory()) {
+                xml.Append("<RemovableMemory>");
+                xml.Append(EscapeXML(this.RemovableMemory));
+                xml.Append("</RemovableMemory>");
+            }
+            if (IsSetRemovableStorage()) {
+                xml.Append("<RemovableStorage>");
+                xml.Append(EscapeXML(this.RemovableStorage));
+                xml.Append("</RemovableStorage>");
+            }
+            if (IsSetRequiredVoltageRange()) {
+                xml.Append("<RequiredVoltageRange>");
+                xml.Append(EscapeXML(this.RequiredVoltageRange));
+                xml.Append("</RequiredVoltageRange>");
+            }
+            if (IsSetResolutionModes()) {
+                xml.Append("<ResolutionModes>");
+                xml.Append(EscapeXML(this.ResolutionModes));
+                xml.Append("</ResolutionModes>");
+            }
+            if (IsSetRingSize()) {
+                xml.Append("<RingSize>");
+                xml.Append(EscapeXML(this.RingSize));
+                xml.Append("</RingSize>");
+            }
+            if (IsSetRunningTime()) {
+                DecimalWithUnits  runningTime = this.RunningTime;
+                xml.Append("<RunningTime Units=" + "\"" +  EscapeXML(runningTime.Units)  + "\"" +  ">");
+                xml.Append(runningTime.Value);
+                xml.Append("</RunningTime>");
+            } 
+            if (IsSetScentName()) {
+                xml.Append("<ScentName>");
+                xml.Append(EscapeXML(this.ScentName));
+                xml.Append("</ScentName>");
+            }
+            if (IsSetSecondaryCacheSize()) {
+                NonNegativeIntegerWithUnits  secondaryCacheSize = this.SecondaryCacheSize;
+                xml.Append("<SecondaryCacheSize Units=" + "\"" +  EscapeXML(secondaryCacheSize.Units)  + "\"" +  ">");
+                xml.Append(secondaryCacheSize.Value);
+                xml.Append("</SecondaryCacheSize>");
+            } 
+            if (IsSetSettingType()) {
+                xml.Append("<SettingType>");
+                xml.Append(EscapeXML(this.SettingType));
+                xml.Append("</SettingType>");
+            }
+            if (IsSetShaftMaterialType()) {
+                xml.Append("<ShaftMaterialType>");
+                xml.Append(EscapeXML(this.ShaftMaterialType));
+                xml.Append("</ShaftMaterialType>");
+            }
+            List<String> shoeSizeList  =  this.ShoeSize;
+            foreach (String shoeSize in shoeSizeList) { 
+                xml.Append("<ShoeSize>");
+                xml.Append(EscapeXML(shoeSize));
+                xml.Append("</ShoeSize>");
+            }	
+            if (IsSetSize()) {
+                xml.Append("<Size>");
+                xml.Append(EscapeXML(this.Size));
+                xml.Append("</Size>");
+            }
+            if (IsSetSizePerPearl()) {
+                xml.Append("<SizePerPearl>");
+                xml.Append(EscapeXML(this.SizePerPearl));
+                xml.Append("</SizePerPearl>");
+            }
+            if (IsSetSkillLevel()) {
+                xml.Append("<SkillLevel>");
+                xml.Append(EscapeXML(this.SkillLevel));
+                xml.Append("</SkillLevel>");
+            }
+            if (IsSetSKU()) {
+                xml.Append("<SKU>");
+                xml.Append(EscapeXML(this.SKU));
+                xml.Append("</SKU>");
+            }
+            if (IsSetSoldInStores()) {
+                xml.Append("<SoldInStores>");
+                xml.Append(EscapeXML(this.SoldInStores));
+                xml.Append("</SoldInStores>");
+            }
+            if (IsSetSoundCardDescription()) {
+                xml.Append("<SoundCardDescription>");
+                xml.Append(EscapeXML(this.SoundCardDescription));
+                xml.Append("</SoundCardDescription>");
+            }
+            if (IsSetSpeakerCount()) {
+                xml.Append("<SpeakerCount>");
+                xml.Append(this.SpeakerCount);
+                xml.Append("</SpeakerCount>");
+            }
+            if (IsSetSpeakerDescription()) {
+                xml.Append("<SpeakerDescription>");
+                xml.Append(EscapeXML(this.SpeakerDescription));
+                xml.Append("</SpeakerDescription>");
+            }
+            List<String> specialFeaturesList  =  this.SpecialFeatures;
+            foreach (String specialFeatures in specialFeaturesList) { 
+                xml.Append("<SpecialFeatures>");
+                xml.Append(EscapeXML(specialFeatures));
+                xml.Append("</SpecialFeatures>");
+            }	
+            if (IsSetStoneClarity()) {
+                xml.Append("<StoneClarity>");
+                xml.Append(EscapeXML(this.StoneClarity));
+                xml.Append("</StoneClarity>");
+            }
+            if (IsSetStoneColor()) {
+                xml.Append("<StoneColor>");
+                xml.Append(EscapeXML(this.StoneColor));
+                xml.Append("</StoneColor>");
+            }
+            if (IsSetStoneCut()) {
+                xml.Append("<StoneCut>");
+                xml.Append(EscapeXML(this.StoneCut));
+                xml.Append("</StoneCut>");
+            }
+            if (IsSetStoneShape()) {
+                xml.Append("<StoneShape>");
+                xml.Append(EscapeXML(this.StoneShape));
+                xml.Append("</StoneShape>");
+            }
+            if (IsSetStoneWeight()) {
+                DecimalWithUnits  stoneWeight = this.StoneWeight;
+                xml.Append("<StoneWeight Units=" + "\"" +  EscapeXML(stoneWeight.Units)  + "\"" +  ">");
+                xml.Append(stoneWeight.Value);
+                xml.Append("</StoneWeight>");
+            } 
+            if (IsSetStudio()) {
+                xml.Append("<Studio>");
+                xml.Append(EscapeXML(this.Studio));
+                xml.Append("</Studio>");
+            }
+            if (IsSetStyle()) {
+                xml.Append("<Style>");
+                xml.Append(EscapeXML(this.Style));
+                xml.Append("</Style>");
+            }
+            if (IsSetSubscriptionLength()) {
+                NonNegativeIntegerWithUnits  subscriptionLength = this.SubscriptionLength;
+                xml.Append("<SubscriptionLength Units=" + "\"" +  EscapeXML(subscriptionLength.Units)  + "\"" +  ">");
+                xml.Append(subscriptionLength.Value);
+                xml.Append("</SubscriptionLength>");
+            } 
+            List<String> supportedImageTypeList  =  this.SupportedImageType;
+            foreach (String supportedImageType in supportedImageTypeList) { 
+                xml.Append("<SupportedImageType>");
+                xml.Append(EscapeXML(supportedImageType));
+                xml.Append("</SupportedImageType>");
+            }	
+            if (IsSetSupportedMediaSize()) {
+                xml.Append("<SupportedMediaSize>");
+                xml.Append(EscapeXML(this.SupportedMediaSize));
+                xml.Append("</SupportedMediaSize>");
+            }
+            if (IsSetSystemBusSpeed()) {
+                DecimalWithUnits  systemBusSpeed = this.SystemBusSpeed;
+                xml.Append("<SystemBusSpeed Units=" + "\"" +  EscapeXML(systemBusSpeed.Units)  + "\"" +  ">");
+                xml.Append(systemBusSpeed.Value);
+                xml.Append("</SystemBusSpeed>");
+            } 
+            if (IsSetSystemMemorySizeMax()) {
+                DecimalWithUnits  systemMemorySizeMax = this.SystemMemorySizeMax;
+                xml.Append("<SystemMemorySizeMax Units=" + "\"" +  EscapeXML(systemMemorySizeMax.Units)  + "\"" +  ">");
+                xml.Append(systemMemorySizeMax.Value);
+                xml.Append("</SystemMemorySizeMax>");
+            } 
+            if (IsSetSystemMemorySize()) {
+                DecimalWithUnits  systemMemorySize = this.SystemMemorySize;
+                xml.Append("<SystemMemorySize Units=" + "\"" +  EscapeXML(systemMemorySize.Units)  + "\"" +  ">");
+                xml.Append(systemMemorySize.Value);
+                xml.Append("</SystemMemorySize>");
+            } 
+            if (IsSetSystemMemoryType()) {
+                xml.Append("<SystemMemoryType>");
+                xml.Append(EscapeXML(this.SystemMemoryType));
+                xml.Append("</SystemMemoryType>");
+            }
+            List<String> targetBrandList  =  this.TargetBrand;
+            foreach (String targetBrand in targetBrandList) { 
+                xml.Append("<TargetBrand>");
+                xml.Append(EscapeXML(targetBrand));
+                xml.Append("</TargetBrand>");
+            }	
+            if (IsSetTellingPageIndicator()) {
+                xml.Append("<TellingPageIndicator>");
+                xml.Append(EscapeXML(this.TellingPageIndicator));
+                xml.Append("</TellingPageIndicator>");
+            }
+            if (IsSetTheatricalReleaseDate()) {
+                xml.Append("<TheatricalReleaseDate>");
+                xml.Append(EscapeXML(this.TheatricalReleaseDate));
+                xml.Append("</TheatricalReleaseDate>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetTotalDiamondWeight()) {
+                DecimalWithUnits  totalDiamondWeight = this.TotalDiamondWeight;
+                xml.Append("<TotalDiamondWeight Units=" + "\"" +  EscapeXML(totalDiamondWeight.Units)  + "\"" +  ">");
+                xml.Append(totalDiamondWeight.Value);
+                xml.Append("</TotalDiamondWeight>");
+            } 
+            if (IsSetTotalExternalBaysFree()) {
+                xml.Append("<TotalExternalBaysFree>");
+                xml.Append(this.TotalExternalBaysFree);
+                xml.Append("</TotalExternalBaysFree>");
+            }
+            if (IsSetTotalFirewirePorts()) {
+                xml.Append("<TotalFirewirePorts>");
+                xml.Append(this.TotalFirewirePorts);
+                xml.Append("</TotalFirewirePorts>");
+            }
+            if (IsSetTotalGemWeight()) {
+                DecimalWithUnits  totalGemWeight = this.TotalGemWeight;
+                xml.Append("<TotalGemWeight Units=" + "\"" +  EscapeXML(totalGemWeight.Units)  + "\"" +  ">");
+                xml.Append(totalGemWeight.Value);
+                xml.Append("</TotalGemWeight>");
+            } 
+            if (IsSetTotalInternalBaysFree()) {
+                xml.Append("<TotalInternalBaysFree>");
+                xml.Append(this.TotalInternalBaysFree);
+                xml.Append("</TotalInternalBaysFree>");
+            }
+            if (IsSetTotalMetalWeight()) {
+                DecimalWithUnits  totalMetalWeight = this.TotalMetalWeight;
+                xml.Append("<TotalMetalWeight Units=" + "\"" +  EscapeXML(totalMetalWeight.Units)  + "\"" +  ">");
+                xml.Append(totalMetalWeight.Value);
+                xml.Append("</TotalMetalWeight>");
+            } 
+            if (IsSetTotalNTSCPALPorts()) {
+                xml.Append("<TotalNTSCPALPorts>");
+                xml.Append(this.TotalNTSCPALPorts);
+                xml.Append("</TotalNTSCPALPorts>");
+            }
+            if (IsSetTotalParallelPorts()) {
+                xml.Append("<TotalParallelPorts>");
+                xml.Append(this.TotalParallelPorts);
+                xml.Append("</TotalParallelPorts>");
+            }
+            if (IsSetTotalPCCardSlots()) {
+                xml.Append("<TotalPCCardSlots>");
+                xml.Append(this.TotalPCCardSlots);
+                xml.Append("</TotalPCCardSlots>");
+            }
+            if (IsSetTotalPCISlotsFree()) {
+                xml.Append("<TotalPCISlotsFree>");
+                xml.Append(this.TotalPCISlotsFree);
+                xml.Append("</TotalPCISlotsFree>");
+            }
+            if (IsSetTotalSerialPorts()) {
+                xml.Append("<TotalSerialPorts>");
+                xml.Append(this.TotalSerialPorts);
+                xml.Append("</TotalSerialPorts>");
+            }
+            if (IsSetTotalSVideoOutPorts()) {
+                xml.Append("<TotalSVideoOutPorts>");
+                xml.Append(this.TotalSVideoOutPorts);
+                xml.Append("</TotalSVideoOutPorts>");
+            }
+            if (IsSetTotalUSB2Ports()) {
+                xml.Append("<TotalUSB2Ports>");
+                xml.Append(this.TotalUSB2Ports);
+                xml.Append("</TotalUSB2Ports>");
+            }
+            if (IsSetTotalUSBPorts()) {
+                xml.Append("<TotalUSBPorts>");
+                xml.Append(this.TotalUSBPorts);
+                xml.Append("</TotalUSBPorts>");
+            }
+            if (IsSetTotalVGAOutPorts()) {
+                xml.Append("<TotalVGAOutPorts>");
+                xml.Append(this.TotalVGAOutPorts);
+                xml.Append("</TotalVGAOutPorts>");
+            }
+            if (IsSetUPC()) {
+                xml.Append("<UPC>");
+                xml.Append(EscapeXML(this.UPC));
+                xml.Append("</UPC>");
+            }
+            if (IsSetVariationDenomination()) {
+                xml.Append("<VariationDenomination>");
+                xml.Append(EscapeXML(this.VariationDenomination));
+                xml.Append("</VariationDenomination>");
+            }
+            if (IsSetVariationDescription()) {
+                xml.Append("<VariationDescription>");
+                xml.Append(EscapeXML(this.VariationDescription));
+                xml.Append("</VariationDescription>");
+            }
+            if (IsSetWarranty()) {
+                xml.Append("<Warranty>");
+                xml.Append(EscapeXML(this.Warranty));
+                xml.Append("</Warranty>");
+            }
+            if (IsSetWatchMovementType()) {
+                xml.Append("<WatchMovementType>");
+                xml.Append(EscapeXML(this.WatchMovementType));
+                xml.Append("</WatchMovementType>");
+            }
+            if (IsSetWaterResistanceDepth()) {
+                DecimalWithUnits  waterResistanceDepth = this.WaterResistanceDepth;
+                xml.Append("<WaterResistanceDepth Units=" + "\"" +  EscapeXML(waterResistanceDepth.Units)  + "\"" +  ">");
+                xml.Append(waterResistanceDepth.Value);
+                xml.Append("</WaterResistanceDepth>");
+            } 
+            if (IsSetWEEETaxValue()) {
+                Price  WEEETaxValue = this.WEEETaxValue;
+                xml.Append("<WEEETaxValue>");
+                xml.Append(WEEETaxValue.ToXMLFragment());
+                xml.Append("</WEEETaxValue>");
+            } 
+            if (IsSetWirelessMicrophoneFrequency()) {
+                xml.Append("<WirelessMicrophoneFrequency>");
+                xml.Append(this.WirelessMicrophoneFrequency);
+                xml.Append("</WirelessMicrophoneFrequency>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemDimensions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemDimensions.cs
new file mode 100644
index 0000000..99ff2db
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemDimensions.cs
@@ -0,0 +1,266 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemDimensions
+    {
+    
+        private  DecimalWithUnits heightField;
+        private  DecimalWithUnits lengthField;
+        private  DecimalWithUnits weightField;
+        private  DecimalWithUnits widthField;
+
+        /// <summary>
+        /// Gets and sets the Height property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Height")]
+        public DecimalWithUnits Height
+        {
+            get { return this.heightField ; }
+            set { this.heightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Height property
+        /// </summary>
+        /// <param name="height">Height property</param>
+        /// <returns>this instance</returns>
+        public ItemDimensions WithHeight(DecimalWithUnits height)
+        {
+            this.heightField = height;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Height property is set
+        /// </summary>
+        /// <returns>true if Height property is set</returns>
+        public Boolean IsSetHeight()
+        {
+            return this.heightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Length property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Length")]
+        public DecimalWithUnits Length
+        {
+            get { return this.lengthField ; }
+            set { this.lengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Length property
+        /// </summary>
+        /// <param name="length">Length property</param>
+        /// <returns>this instance</returns>
+        public ItemDimensions WithLength(DecimalWithUnits length)
+        {
+            this.lengthField = length;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Length property is set
+        /// </summary>
+        /// <returns>true if Length property is set</returns>
+        public Boolean IsSetLength()
+        {
+            return this.lengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Weight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Weight")]
+        public DecimalWithUnits Weight
+        {
+            get { return this.weightField ; }
+            set { this.weightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Weight property
+        /// </summary>
+        /// <param name="weight">Weight property</param>
+        /// <returns>this instance</returns>
+        public ItemDimensions WithWeight(DecimalWithUnits weight)
+        {
+            this.weightField = weight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Weight property is set
+        /// </summary>
+        /// <returns>true if Weight property is set</returns>
+        public Boolean IsSetWeight()
+        {
+            return this.weightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Width property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Width")]
+        public DecimalWithUnits Width
+        {
+            get { return this.widthField ; }
+            set { this.widthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Width property
+        /// </summary>
+        /// <param name="width">Width property</param>
+        /// <returns>this instance</returns>
+        public ItemDimensions WithWidth(DecimalWithUnits width)
+        {
+            this.widthField = width;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Width property is set
+        /// </summary>
+        /// <returns>true if Width property is set</returns>
+        public Boolean IsSetWidth()
+        {
+            return this.widthField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetHeight()) {
+                DecimalWithUnits  height = this.Height;
+                xml.Append("<Height Units=" + "\"" +  EscapeXML(height.Units)  + "\"" +  ">");
+                xml.Append(height.Value);
+                xml.Append("</Height>");
+            } 
+            if (IsSetLength()) {
+                DecimalWithUnits  length = this.Length;
+                xml.Append("<Length Units=" + "\"" +  EscapeXML(length.Units)  + "\"" +  ">");
+                xml.Append(length.Value);
+                xml.Append("</Length>");
+            } 
+            if (IsSetWeight()) {
+                DecimalWithUnits  weight = this.Weight;
+                xml.Append("<Weight Units=" + "\"" +  EscapeXML(weight.Units)  + "\"" +  ">");
+                xml.Append(weight.Value);
+                xml.Append("</Weight>");
+            } 
+            if (IsSetWidth()) {
+                DecimalWithUnits  width = this.Width;
+                xml.Append("<Width Units=" + "\"" +  EscapeXML(width.Units)  + "\"" +  ">");
+                xml.Append(width.Value);
+                xml.Append("</Width>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookup.cs
new file mode 100644
index 0000000..93ca7b7
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookup.cs
@@ -0,0 +1,175 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemLookup
+    {
+    
+        private  List<ItemLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<ItemLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<ItemLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public ItemLookup WithRequest(params ItemLookupRequest[] list)
+        {
+            foreach (ItemLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "ItemLookup");
+            List<ItemLookupRequest> requestList = Request;
+            foreach (ItemLookupRequest request in requestList) 
+            {
+                if (request.IsSetCondition()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Condition", request.Condition.ToString());
+                }
+                if (request.IsSetDeliveryMethod()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "DeliveryMethod", request.DeliveryMethod.ToString());
+                }
+                if (request.IsSetFutureLaunchDate()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "FutureLaunchDate", request.FutureLaunchDate);
+                }
+                if (request.IsSetIdType()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "IdType", request.IdType.ToString());
+                }
+                if (request.IsSetISPUPostalCode()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ISPUPostalCode", request.ISPUPostalCode);
+                }
+                if (request.IsSetMerchantId()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "MerchantId", request.MerchantId);
+                }
+                if (request.IsSetOfferPage()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "OfferPage", request.OfferPage + "");
+                }
+                List<String> itemIdList  =  request.ItemId;
+                foreach  (String itemId in itemIdList)
+                { 
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ItemId" + "."  + (itemIdList.IndexOf(itemId) + 1), itemId);
+                }	
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetReviewPage()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewPage", request.ReviewPage + "");
+                }
+                if (request.IsSetReviewSort()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewSort", request.ReviewSort);
+                }
+                if (request.IsSetSearchIndex()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "SearchIndex", request.SearchIndex);
+                }
+                if (request.IsSetSearchInsideKeywords()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "SearchInsideKeywords", request.SearchInsideKeywords);
+                }
+                if (request.IsSetTagPage()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagPage", request.TagPage + "");
+                }
+                if (request.IsSetTagsPerPage()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagsPerPage", request.TagsPerPage + "");
+                }
+                if (request.IsSetTagSort()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagSort", request.TagSort);
+                }
+                if (request.IsSetVariationPage()) 
+                {
+                    parameters.Add("ItemLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "VariationPage", request.VariationPage);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupRequest.cs
new file mode 100644
index 0000000..73eb095
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupRequest.cs
@@ -0,0 +1,845 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemLookupRequest
+    {
+    
+        private Condition? conditionField;
+
+        private DeliveryMethod? deliveryMethodField;
+
+        private String futureLaunchDateField;
+
+        private String idTypeField;
+
+        private String ISPUPostalCodeField;
+
+        private String merchantIdField;
+
+        private Decimal? offerPageField;
+
+        private List<String> itemIdField;
+
+        private List<String> responseGroupField;
+
+        private Decimal? reviewPageField;
+
+        private String reviewSortField;
+
+        private String searchIndexField;
+
+        private String searchInsideKeywordsField;
+
+        private Decimal? tagPageField;
+
+        private Decimal? tagsPerPageField;
+
+        private String tagSortField;
+
+        private String variationPageField;
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public Condition Condition
+        {
+            get { return this.conditionField.GetValueOrDefault() ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithCondition(Condition condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return this.conditionField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryMethod")]
+        public DeliveryMethod DeliveryMethod
+        {
+            get { return this.deliveryMethodField.GetValueOrDefault() ; }
+            set { this.deliveryMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryMethod property
+        /// </summary>
+        /// <param name="deliveryMethod">DeliveryMethod property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithDeliveryMethod(DeliveryMethod deliveryMethod)
+        {
+            this.deliveryMethodField = deliveryMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryMethod property is set
+        /// </summary>
+        /// <returns>true if DeliveryMethod property is set</returns>
+        public Boolean IsSetDeliveryMethod()
+        {
+            return this.deliveryMethodField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FutureLaunchDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FutureLaunchDate")]
+        public String FutureLaunchDate
+        {
+            get { return this.futureLaunchDateField ; }
+            set { this.futureLaunchDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FutureLaunchDate property
+        /// </summary>
+        /// <param name="futureLaunchDate">FutureLaunchDate property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithFutureLaunchDate(String futureLaunchDate)
+        {
+            this.futureLaunchDateField = futureLaunchDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FutureLaunchDate property is set
+        /// </summary>
+        /// <returns>true if FutureLaunchDate property is set</returns>
+        public Boolean IsSetFutureLaunchDate()
+        {
+            return  this.futureLaunchDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IdType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IdType")]
+        public String IdType
+        {
+            get { return this.idTypeField ; }
+            set { this.idTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IdType property
+        /// </summary>
+        /// <param name="idType">IdType property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithIdType(String idType)
+        {
+            this.idTypeField = idType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IdType property is set
+        /// </summary>
+        /// <returns>true if IdType property is set</returns>
+        public Boolean IsSetIdType()
+        {
+            return this.idTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISPUPostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUPostalCode")]
+        public String ISPUPostalCode
+        {
+            get { return this.ISPUPostalCodeField ; }
+            set { this.ISPUPostalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUPostalCode property
+        /// </summary>
+        /// <param name="ISPUPostalCode">ISPUPostalCode property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithISPUPostalCode(String ISPUPostalCode)
+        {
+            this.ISPUPostalCodeField = ISPUPostalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUPostalCode property is set
+        /// </summary>
+        /// <returns>true if ISPUPostalCode property is set</returns>
+        public Boolean IsSetISPUPostalCode()
+        {
+            return  this.ISPUPostalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OfferPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferPage")]
+        public Decimal OfferPage
+        {
+            get { return this.offerPageField.GetValueOrDefault() ; }
+            set { this.offerPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferPage property
+        /// </summary>
+        /// <param name="offerPage">OfferPage property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithOfferPage(Decimal offerPage)
+        {
+            this.offerPageField = offerPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferPage property is set
+        /// </summary>
+        /// <returns>true if OfferPage property is set</returns>
+        public Boolean IsSetOfferPage()
+        {
+            return  this.offerPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemId")]
+        public List<String> ItemId
+        {
+            get
+            {
+                if (this.itemIdField == null)
+                {
+                    this.itemIdField = new List<String>();
+                }
+                return this.itemIdField;
+            }
+            set { this.itemIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemId property
+        /// </summary>
+        /// <param name="list">ItemId property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithItemId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ItemId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ItemId property is set
+        /// </summary>
+        /// <returns>true if ItemId property is set</returns>
+        public Boolean IsSetItemId()
+        {
+            return (ItemId.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReviewPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewPage")]
+        public Decimal ReviewPage
+        {
+            get { return this.reviewPageField.GetValueOrDefault() ; }
+            set { this.reviewPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewPage property
+        /// </summary>
+        /// <param name="reviewPage">ReviewPage property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithReviewPage(Decimal reviewPage)
+        {
+            this.reviewPageField = reviewPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewPage property is set
+        /// </summary>
+        /// <returns>true if ReviewPage property is set</returns>
+        public Boolean IsSetReviewPage()
+        {
+            return  this.reviewPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReviewSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewSort")]
+        public String ReviewSort
+        {
+            get { return this.reviewSortField ; }
+            set { this.reviewSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewSort property
+        /// </summary>
+        /// <param name="reviewSort">ReviewSort property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithReviewSort(String reviewSort)
+        {
+            this.reviewSortField = reviewSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewSort property is set
+        /// </summary>
+        /// <returns>true if ReviewSort property is set</returns>
+        public Boolean IsSetReviewSort()
+        {
+            return  this.reviewSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SearchIndex property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchIndex")]
+        public String SearchIndex
+        {
+            get { return this.searchIndexField ; }
+            set { this.searchIndexField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchIndex property
+        /// </summary>
+        /// <param name="searchIndex">SearchIndex property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithSearchIndex(String searchIndex)
+        {
+            this.searchIndexField = searchIndex;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SearchIndex property is set
+        /// </summary>
+        /// <returns>true if SearchIndex property is set</returns>
+        public Boolean IsSetSearchIndex()
+        {
+            return  this.searchIndexField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SearchInsideKeywords property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchInsideKeywords")]
+        public String SearchInsideKeywords
+        {
+            get { return this.searchInsideKeywordsField ; }
+            set { this.searchInsideKeywordsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchInsideKeywords property
+        /// </summary>
+        /// <param name="searchInsideKeywords">SearchInsideKeywords property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithSearchInsideKeywords(String searchInsideKeywords)
+        {
+            this.searchInsideKeywordsField = searchInsideKeywords;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SearchInsideKeywords property is set
+        /// </summary>
+        /// <returns>true if SearchInsideKeywords property is set</returns>
+        public Boolean IsSetSearchInsideKeywords()
+        {
+            return  this.searchInsideKeywordsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagPage")]
+        public Decimal TagPage
+        {
+            get { return this.tagPageField.GetValueOrDefault() ; }
+            set { this.tagPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagPage property
+        /// </summary>
+        /// <param name="tagPage">TagPage property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithTagPage(Decimal tagPage)
+        {
+            this.tagPageField = tagPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagPage property is set
+        /// </summary>
+        /// <returns>true if TagPage property is set</returns>
+        public Boolean IsSetTagPage()
+        {
+            return  this.tagPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagsPerPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagsPerPage")]
+        public Decimal TagsPerPage
+        {
+            get { return this.tagsPerPageField.GetValueOrDefault() ; }
+            set { this.tagsPerPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagsPerPage property
+        /// </summary>
+        /// <param name="tagsPerPage">TagsPerPage property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithTagsPerPage(Decimal tagsPerPage)
+        {
+            this.tagsPerPageField = tagsPerPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagsPerPage property is set
+        /// </summary>
+        /// <returns>true if TagsPerPage property is set</returns>
+        public Boolean IsSetTagsPerPage()
+        {
+            return  this.tagsPerPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagSort")]
+        public String TagSort
+        {
+            get { return this.tagSortField ; }
+            set { this.tagSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagSort property
+        /// </summary>
+        /// <param name="tagSort">TagSort property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithTagSort(String tagSort)
+        {
+            this.tagSortField = tagSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagSort property is set
+        /// </summary>
+        /// <returns>true if TagSort property is set</returns>
+        public Boolean IsSetTagSort()
+        {
+            return  this.tagSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationPage")]
+        public String VariationPage
+        {
+            get { return this.variationPageField ; }
+            set { this.variationPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationPage property
+        /// </summary>
+        /// <param name="variationPage">VariationPage property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupRequest WithVariationPage(String variationPage)
+        {
+            this.variationPageField = variationPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationPage property is set
+        /// </summary>
+        /// <returns>true if VariationPage property is set</returns>
+        public Boolean IsSetVariationPage()
+        {
+            return  this.variationPageField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(this.Condition);
+                xml.Append("</Condition>");
+            }
+            if (IsSetDeliveryMethod()) {
+                xml.Append("<DeliveryMethod>");
+                xml.Append(this.DeliveryMethod);
+                xml.Append("</DeliveryMethod>");
+            }
+            if (IsSetFutureLaunchDate()) {
+                xml.Append("<FutureLaunchDate>");
+                xml.Append(EscapeXML(this.FutureLaunchDate));
+                xml.Append("</FutureLaunchDate>");
+            }
+            if (IsSetIdType()) {
+                xml.Append("<IdType>");
+                xml.Append(this.IdType);
+                xml.Append("</IdType>");
+            }
+            if (IsSetISPUPostalCode()) {
+                xml.Append("<ISPUPostalCode>");
+                xml.Append(EscapeXML(this.ISPUPostalCode));
+                xml.Append("</ISPUPostalCode>");
+            }
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetOfferPage()) {
+                xml.Append("<OfferPage>");
+                xml.Append(this.OfferPage);
+                xml.Append("</OfferPage>");
+            }
+            List<String> itemIdList  =  this.ItemId;
+            foreach (String itemId in itemIdList) { 
+                xml.Append("<ItemId>");
+                xml.Append(EscapeXML(itemId));
+                xml.Append("</ItemId>");
+            }	
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetReviewPage()) {
+                xml.Append("<ReviewPage>");
+                xml.Append(this.ReviewPage);
+                xml.Append("</ReviewPage>");
+            }
+            if (IsSetReviewSort()) {
+                xml.Append("<ReviewSort>");
+                xml.Append(EscapeXML(this.ReviewSort));
+                xml.Append("</ReviewSort>");
+            }
+            if (IsSetSearchIndex()) {
+                xml.Append("<SearchIndex>");
+                xml.Append(EscapeXML(this.SearchIndex));
+                xml.Append("</SearchIndex>");
+            }
+            if (IsSetSearchInsideKeywords()) {
+                xml.Append("<SearchInsideKeywords>");
+                xml.Append(EscapeXML(this.SearchInsideKeywords));
+                xml.Append("</SearchInsideKeywords>");
+            }
+            if (IsSetTagPage()) {
+                xml.Append("<TagPage>");
+                xml.Append(this.TagPage);
+                xml.Append("</TagPage>");
+            }
+            if (IsSetTagsPerPage()) {
+                xml.Append("<TagsPerPage>");
+                xml.Append(this.TagsPerPage);
+                xml.Append("</TagsPerPage>");
+            }
+            if (IsSetTagSort()) {
+                xml.Append("<TagSort>");
+                xml.Append(EscapeXML(this.TagSort));
+                xml.Append("</TagSort>");
+            }
+            if (IsSetVariationPage()) {
+                xml.Append("<VariationPage>");
+                xml.Append(EscapeXML(this.VariationPage));
+                xml.Append("</VariationPage>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupResponse.cs
new file mode 100644
index 0000000..b5b902c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Items> itemsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public List<Items> Items
+        {
+            get
+            {
+                if (this.itemsField == null)
+                {
+                    this.itemsField = new List<Items>();
+                }
+                return this.itemsField;
+            }
+            set { this.itemsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="list">Items property</param>
+        /// <returns>this instance</returns>
+        public ItemLookupResponse WithItems(params Items[] list)
+        {
+            foreach (Items item in list)
+            {
+                Items.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return (Items.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<ItemLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Items> itemsList = this.Items;
+            foreach (Items items in itemsList) {
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            }
+            xml.Append("</ItemLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearch.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearch.cs
new file mode 100644
index 0000000..8aa5c6c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearch.cs
@@ -0,0 +1,267 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemSearch
+    {
+    
+        private  List<ItemSearchRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<ItemSearchRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<ItemSearchRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public ItemSearch WithRequest(params ItemSearchRequest[] list)
+        {
+            foreach (ItemSearchRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "ItemSearch");
+            List<ItemSearchRequest> requestList = Request;
+            foreach (ItemSearchRequest request in requestList) 
+            {
+                if (request.IsSetActor()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Actor", request.Actor);
+                }
+                if (request.IsSetArtist()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Artist", request.Artist);
+                }
+                if (request.IsSetAvailability()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Availability", request.Availability.ToString());
+                }
+                List<String> audienceRatingList  =  request.AudienceRating;
+                foreach  (String audienceRating in audienceRatingList)
+                { 
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "AudienceRating" + "."  + (audienceRatingList.IndexOf(audienceRating) + 1), audienceRating.ToString());
+                }	
+                if (request.IsSetAuthor()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Author", request.Author);
+                }
+                if (request.IsSetBrand()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Brand", request.Brand);
+                }
+                if (request.IsSetBrowseNode()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "BrowseNode", request.BrowseNode);
+                }
+                if (request.IsSetCity()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "City", request.City);
+                }
+                if (request.IsSetComposer()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Composer", request.Composer);
+                }
+                if (request.IsSetCondition()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Condition", request.Condition.ToString());
+                }
+                if (request.IsSetConductor()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Conductor", request.Conductor);
+                }
+                if (request.IsSetCount()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Count", request.Count + "");
+                }
+                if (request.IsSetCuisine()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Cuisine", request.Cuisine);
+                }
+                if (request.IsSetDeliveryMethod()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "DeliveryMethod", request.DeliveryMethod.ToString());
+                }
+                if (request.IsSetDirector()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Director", request.Director);
+                }
+                if (request.IsSetFutureLaunchDate()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "FutureLaunchDate", request.FutureLaunchDate);
+                }
+                if (request.IsSetISPUPostalCode()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ISPUPostalCode", request.ISPUPostalCode);
+                }
+                if (request.IsSetItemPage()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ItemPage", request.ItemPage + "");
+                }
+                if (request.IsSetKeywords()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Keywords", request.Keywords);
+                }
+                if (request.IsSetManufacturer()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Manufacturer", request.Manufacturer);
+                }
+                if (request.IsSetMaximumPrice()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "MaximumPrice", request.MaximumPrice + "");
+                }
+                if (request.IsSetMerchantId()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "MerchantId", request.MerchantId);
+                }
+                if (request.IsSetMinimumPrice()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "MinimumPrice", request.MinimumPrice + "");
+                }
+                if (request.IsSetMusicLabel()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "MusicLabel", request.MusicLabel);
+                }
+                if (request.IsSetNeighborhood()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Neighborhood", request.Neighborhood);
+                }
+                if (request.IsSetOrchestra()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Orchestra", request.Orchestra);
+                }
+                if (request.IsSetPostalCode()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "PostalCode", request.PostalCode);
+                }
+                if (request.IsSetPower()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Power", request.Power);
+                }
+                if (request.IsSetPublisher()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Publisher", request.Publisher);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetReviewSort()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewSort", request.ReviewSort);
+                }
+                if (request.IsSetSearchIndex()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "SearchIndex", request.SearchIndex);
+                }
+                if (request.IsSetSort()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Sort", request.Sort);
+                }
+                if (request.IsSetState()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "State", request.State);
+                }
+                if (request.IsSetTagPage()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagPage", request.TagPage + "");
+                }
+                if (request.IsSetTagsPerPage()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagsPerPage", request.TagsPerPage + "");
+                }
+                if (request.IsSetTagSort()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagSort", request.TagSort);
+                }
+                if (request.IsSetTextStream()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "TextStream", request.TextStream);
+                }
+                if (request.IsSetTitle()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Title", request.Title);
+                }
+                if (request.IsSetReleaseDate()) 
+                {
+                    parameters.Add("ItemSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReleaseDate", request.ReleaseDate);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchRequest.cs
new file mode 100644
index 0000000..6fe011e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchRequest.cs
@@ -0,0 +1,1834 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemSearchRequest
+    {
+    
+        private String actorField;
+
+        private String artistField;
+
+        private String availabilityField;
+
+        private List<String> audienceRatingField;
+
+        private String authorField;
+
+        private String brandField;
+
+        private String browseNodeField;
+
+        private String cityField;
+
+        private String composerField;
+
+        private Condition? conditionField;
+
+        private String conductorField;
+
+        private Decimal? countField;
+
+        private String cuisineField;
+
+        private DeliveryMethod? deliveryMethodField;
+
+        private String directorField;
+
+        private String futureLaunchDateField;
+
+        private String ISPUPostalCodeField;
+
+        private Decimal? itemPageField;
+
+        private String keywordsField;
+
+        private String manufacturerField;
+
+        private Decimal? maximumPriceField;
+
+        private String merchantIdField;
+
+        private Decimal? minimumPriceField;
+
+        private String musicLabelField;
+
+        private String neighborhoodField;
+
+        private String orchestraField;
+
+        private String postalCodeField;
+
+        private String powerField;
+
+        private String publisherField;
+
+        private List<String> responseGroupField;
+
+        private String reviewSortField;
+
+        private String searchIndexField;
+
+        private String sortField;
+
+        private String stateField;
+
+        private Decimal? tagPageField;
+
+        private Decimal? tagsPerPageField;
+
+        private String tagSortField;
+
+        private String textStreamField;
+
+        private String titleField;
+
+        private String releaseDateField;
+
+
+        /// <summary>
+        /// Gets and sets the Actor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Actor")]
+        public String Actor
+        {
+            get { return this.actorField ; }
+            set { this.actorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Actor property
+        /// </summary>
+        /// <param name="actor">Actor property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithActor(String actor)
+        {
+            this.actorField = actor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Actor property is set
+        /// </summary>
+        /// <returns>true if Actor property is set</returns>
+        public Boolean IsSetActor()
+        {
+            return  this.actorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Artist property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Artist")]
+        public String Artist
+        {
+            get { return this.artistField ; }
+            set { this.artistField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Artist property
+        /// </summary>
+        /// <param name="artist">Artist property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithArtist(String artist)
+        {
+            this.artistField = artist;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Artist property is set
+        /// </summary>
+        /// <returns>true if Artist property is set</returns>
+        public Boolean IsSetArtist()
+        {
+            return  this.artistField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Availability property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Availability")]
+        public String Availability
+        {
+            get { return this.availabilityField ; }
+            set { this.availabilityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Availability property
+        /// </summary>
+        /// <param name="availability">Availability property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithAvailability(String availability)
+        {
+            this.availabilityField = availability;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Availability property is set
+        /// </summary>
+        /// <returns>true if Availability property is set</returns>
+        public Boolean IsSetAvailability()
+        {
+            return this.availabilityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudienceRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudienceRating")]
+        public List<String> AudienceRating
+        {
+            get
+            {
+                if (this.audienceRatingField == null)
+                {
+                    this.audienceRatingField = new List<String>();
+                }
+                return this.audienceRatingField;
+            }
+            set { this.audienceRatingField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudienceRating property
+        /// </summary>
+        /// <param name="list">AudienceRating property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithAudienceRating(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                AudienceRating.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of AudienceRating property is set
+        /// </summary>
+        /// <returns>true if AudienceRating property is set</returns>
+        public Boolean IsSetAudienceRating()
+        {
+            return (AudienceRating.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Author property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Author")]
+        public String Author
+        {
+            get { return this.authorField ; }
+            set { this.authorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Author property
+        /// </summary>
+        /// <param name="author">Author property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithAuthor(String author)
+        {
+            this.authorField = author;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Author property is set
+        /// </summary>
+        /// <returns>true if Author property is set</returns>
+        public Boolean IsSetAuthor()
+        {
+            return  this.authorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Brand property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Brand")]
+        public String Brand
+        {
+            get { return this.brandField ; }
+            set { this.brandField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Brand property
+        /// </summary>
+        /// <param name="brand">Brand property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithBrand(String brand)
+        {
+            this.brandField = brand;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Brand property is set
+        /// </summary>
+        /// <returns>true if Brand property is set</returns>
+        public Boolean IsSetBrand()
+        {
+            return  this.brandField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BrowseNode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BrowseNode")]
+        public String BrowseNode
+        {
+            get { return this.browseNodeField ; }
+            set { this.browseNodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BrowseNode property
+        /// </summary>
+        /// <param name="browseNode">BrowseNode property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithBrowseNode(String browseNode)
+        {
+            this.browseNodeField = browseNode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BrowseNode property is set
+        /// </summary>
+        /// <returns>true if BrowseNode property is set</returns>
+        public Boolean IsSetBrowseNode()
+        {
+            return  this.browseNodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the City property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "City")]
+        public String City
+        {
+            get { return this.cityField ; }
+            set { this.cityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the City property
+        /// </summary>
+        /// <param name="city">City property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithCity(String city)
+        {
+            this.cityField = city;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if City property is set
+        /// </summary>
+        /// <returns>true if City property is set</returns>
+        public Boolean IsSetCity()
+        {
+            return  this.cityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Composer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Composer")]
+        public String Composer
+        {
+            get { return this.composerField ; }
+            set { this.composerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Composer property
+        /// </summary>
+        /// <param name="composer">Composer property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithComposer(String composer)
+        {
+            this.composerField = composer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Composer property is set
+        /// </summary>
+        /// <returns>true if Composer property is set</returns>
+        public Boolean IsSetComposer()
+        {
+            return  this.composerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public Condition Condition
+        {
+            get { return this.conditionField.GetValueOrDefault() ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithCondition(Condition condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return this.conditionField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Conductor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Conductor")]
+        public String Conductor
+        {
+            get { return this.conductorField ; }
+            set { this.conductorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Conductor property
+        /// </summary>
+        /// <param name="conductor">Conductor property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithConductor(String conductor)
+        {
+            this.conductorField = conductor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Conductor property is set
+        /// </summary>
+        /// <returns>true if Conductor property is set</returns>
+        public Boolean IsSetConductor()
+        {
+            return  this.conductorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Count property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Count")]
+        public Decimal Count
+        {
+            get { return this.countField.GetValueOrDefault() ; }
+            set { this.countField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Count property
+        /// </summary>
+        /// <param name="count">Count property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithCount(Decimal count)
+        {
+            this.countField = count;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Count property is set
+        /// </summary>
+        /// <returns>true if Count property is set</returns>
+        public Boolean IsSetCount()
+        {
+            return  this.countField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Cuisine property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cuisine")]
+        public String Cuisine
+        {
+            get { return this.cuisineField ; }
+            set { this.cuisineField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cuisine property
+        /// </summary>
+        /// <param name="cuisine">Cuisine property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithCuisine(String cuisine)
+        {
+            this.cuisineField = cuisine;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Cuisine property is set
+        /// </summary>
+        /// <returns>true if Cuisine property is set</returns>
+        public Boolean IsSetCuisine()
+        {
+            return  this.cuisineField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryMethod")]
+        public DeliveryMethod DeliveryMethod
+        {
+            get { return this.deliveryMethodField.GetValueOrDefault() ; }
+            set { this.deliveryMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryMethod property
+        /// </summary>
+        /// <param name="deliveryMethod">DeliveryMethod property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithDeliveryMethod(DeliveryMethod deliveryMethod)
+        {
+            this.deliveryMethodField = deliveryMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryMethod property is set
+        /// </summary>
+        /// <returns>true if DeliveryMethod property is set</returns>
+        public Boolean IsSetDeliveryMethod()
+        {
+            return this.deliveryMethodField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Director property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Director")]
+        public String Director
+        {
+            get { return this.directorField ; }
+            set { this.directorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Director property
+        /// </summary>
+        /// <param name="director">Director property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithDirector(String director)
+        {
+            this.directorField = director;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Director property is set
+        /// </summary>
+        /// <returns>true if Director property is set</returns>
+        public Boolean IsSetDirector()
+        {
+            return  this.directorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FutureLaunchDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FutureLaunchDate")]
+        public String FutureLaunchDate
+        {
+            get { return this.futureLaunchDateField ; }
+            set { this.futureLaunchDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FutureLaunchDate property
+        /// </summary>
+        /// <param name="futureLaunchDate">FutureLaunchDate property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithFutureLaunchDate(String futureLaunchDate)
+        {
+            this.futureLaunchDateField = futureLaunchDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FutureLaunchDate property is set
+        /// </summary>
+        /// <returns>true if FutureLaunchDate property is set</returns>
+        public Boolean IsSetFutureLaunchDate()
+        {
+            return  this.futureLaunchDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISPUPostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUPostalCode")]
+        public String ISPUPostalCode
+        {
+            get { return this.ISPUPostalCodeField ; }
+            set { this.ISPUPostalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUPostalCode property
+        /// </summary>
+        /// <param name="ISPUPostalCode">ISPUPostalCode property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithISPUPostalCode(String ISPUPostalCode)
+        {
+            this.ISPUPostalCodeField = ISPUPostalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUPostalCode property is set
+        /// </summary>
+        /// <returns>true if ISPUPostalCode property is set</returns>
+        public Boolean IsSetISPUPostalCode()
+        {
+            return  this.ISPUPostalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemPage")]
+        public Decimal ItemPage
+        {
+            get { return this.itemPageField.GetValueOrDefault() ; }
+            set { this.itemPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemPage property
+        /// </summary>
+        /// <param name="itemPage">ItemPage property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithItemPage(Decimal itemPage)
+        {
+            this.itemPageField = itemPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemPage property is set
+        /// </summary>
+        /// <returns>true if ItemPage property is set</returns>
+        public Boolean IsSetItemPage()
+        {
+            return  this.itemPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Keywords property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Keywords")]
+        public String Keywords
+        {
+            get { return this.keywordsField ; }
+            set { this.keywordsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Keywords property
+        /// </summary>
+        /// <param name="keywords">Keywords property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithKeywords(String keywords)
+        {
+            this.keywordsField = keywords;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Keywords property is set
+        /// </summary>
+        /// <returns>true if Keywords property is set</returns>
+        public Boolean IsSetKeywords()
+        {
+            return  this.keywordsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Manufacturer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Manufacturer")]
+        public String Manufacturer
+        {
+            get { return this.manufacturerField ; }
+            set { this.manufacturerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Manufacturer property
+        /// </summary>
+        /// <param name="manufacturer">Manufacturer property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithManufacturer(String manufacturer)
+        {
+            this.manufacturerField = manufacturer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Manufacturer property is set
+        /// </summary>
+        /// <returns>true if Manufacturer property is set</returns>
+        public Boolean IsSetManufacturer()
+        {
+            return  this.manufacturerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumPrice")]
+        public Decimal MaximumPrice
+        {
+            get { return this.maximumPriceField.GetValueOrDefault() ; }
+            set { this.maximumPriceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumPrice property
+        /// </summary>
+        /// <param name="maximumPrice">MaximumPrice property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithMaximumPrice(Decimal maximumPrice)
+        {
+            this.maximumPriceField = maximumPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumPrice property is set
+        /// </summary>
+        /// <returns>true if MaximumPrice property is set</returns>
+        public Boolean IsSetMaximumPrice()
+        {
+            return  this.maximumPriceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MinimumPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumPrice")]
+        public Decimal MinimumPrice
+        {
+            get { return this.minimumPriceField.GetValueOrDefault() ; }
+            set { this.minimumPriceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumPrice property
+        /// </summary>
+        /// <param name="minimumPrice">MinimumPrice property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithMinimumPrice(Decimal minimumPrice)
+        {
+            this.minimumPriceField = minimumPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumPrice property is set
+        /// </summary>
+        /// <returns>true if MinimumPrice property is set</returns>
+        public Boolean IsSetMinimumPrice()
+        {
+            return  this.minimumPriceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MusicLabel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MusicLabel")]
+        public String MusicLabel
+        {
+            get { return this.musicLabelField ; }
+            set { this.musicLabelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MusicLabel property
+        /// </summary>
+        /// <param name="musicLabel">MusicLabel property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithMusicLabel(String musicLabel)
+        {
+            this.musicLabelField = musicLabel;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MusicLabel property is set
+        /// </summary>
+        /// <returns>true if MusicLabel property is set</returns>
+        public Boolean IsSetMusicLabel()
+        {
+            return  this.musicLabelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Neighborhood property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Neighborhood")]
+        public String Neighborhood
+        {
+            get { return this.neighborhoodField ; }
+            set { this.neighborhoodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Neighborhood property
+        /// </summary>
+        /// <param name="neighborhood">Neighborhood property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithNeighborhood(String neighborhood)
+        {
+            this.neighborhoodField = neighborhood;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Neighborhood property is set
+        /// </summary>
+        /// <returns>true if Neighborhood property is set</returns>
+        public Boolean IsSetNeighborhood()
+        {
+            return  this.neighborhoodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Orchestra property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Orchestra")]
+        public String Orchestra
+        {
+            get { return this.orchestraField ; }
+            set { this.orchestraField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Orchestra property
+        /// </summary>
+        /// <param name="orchestra">Orchestra property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithOrchestra(String orchestra)
+        {
+            this.orchestraField = orchestra;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Orchestra property is set
+        /// </summary>
+        /// <returns>true if Orchestra property is set</returns>
+        public Boolean IsSetOrchestra()
+        {
+            return  this.orchestraField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PostalCode")]
+        public String PostalCode
+        {
+            get { return this.postalCodeField ; }
+            set { this.postalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PostalCode property
+        /// </summary>
+        /// <param name="postalCode">PostalCode property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithPostalCode(String postalCode)
+        {
+            this.postalCodeField = postalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PostalCode property is set
+        /// </summary>
+        /// <returns>true if PostalCode property is set</returns>
+        public Boolean IsSetPostalCode()
+        {
+            return  this.postalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Power property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Power")]
+        public String Power
+        {
+            get { return this.powerField ; }
+            set { this.powerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Power property
+        /// </summary>
+        /// <param name="power">Power property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithPower(String power)
+        {
+            this.powerField = power;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Power property is set
+        /// </summary>
+        /// <returns>true if Power property is set</returns>
+        public Boolean IsSetPower()
+        {
+            return  this.powerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Publisher property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Publisher")]
+        public String Publisher
+        {
+            get { return this.publisherField ; }
+            set { this.publisherField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Publisher property
+        /// </summary>
+        /// <param name="publisher">Publisher property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithPublisher(String publisher)
+        {
+            this.publisherField = publisher;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Publisher property is set
+        /// </summary>
+        /// <returns>true if Publisher property is set</returns>
+        public Boolean IsSetPublisher()
+        {
+            return  this.publisherField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReviewSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewSort")]
+        public String ReviewSort
+        {
+            get { return this.reviewSortField ; }
+            set { this.reviewSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewSort property
+        /// </summary>
+        /// <param name="reviewSort">ReviewSort property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithReviewSort(String reviewSort)
+        {
+            this.reviewSortField = reviewSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewSort property is set
+        /// </summary>
+        /// <returns>true if ReviewSort property is set</returns>
+        public Boolean IsSetReviewSort()
+        {
+            return  this.reviewSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SearchIndex property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchIndex")]
+        public String SearchIndex
+        {
+            get { return this.searchIndexField ; }
+            set { this.searchIndexField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchIndex property
+        /// </summary>
+        /// <param name="searchIndex">SearchIndex property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithSearchIndex(String searchIndex)
+        {
+            this.searchIndexField = searchIndex;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SearchIndex property is set
+        /// </summary>
+        /// <returns>true if SearchIndex property is set</returns>
+        public Boolean IsSetSearchIndex()
+        {
+            return  this.searchIndexField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Sort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Sort")]
+        public String Sort
+        {
+            get { return this.sortField ; }
+            set { this.sortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Sort property
+        /// </summary>
+        /// <param name="sort">Sort property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithSort(String sort)
+        {
+            this.sortField = sort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Sort property is set
+        /// </summary>
+        /// <returns>true if Sort property is set</returns>
+        public Boolean IsSetSort()
+        {
+            return  this.sortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the State property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "State")]
+        public String State
+        {
+            get { return this.stateField ; }
+            set { this.stateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the State property
+        /// </summary>
+        /// <param name="state">State property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithState(String state)
+        {
+            this.stateField = state;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if State property is set
+        /// </summary>
+        /// <returns>true if State property is set</returns>
+        public Boolean IsSetState()
+        {
+            return  this.stateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagPage")]
+        public Decimal TagPage
+        {
+            get { return this.tagPageField.GetValueOrDefault() ; }
+            set { this.tagPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagPage property
+        /// </summary>
+        /// <param name="tagPage">TagPage property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithTagPage(Decimal tagPage)
+        {
+            this.tagPageField = tagPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagPage property is set
+        /// </summary>
+        /// <returns>true if TagPage property is set</returns>
+        public Boolean IsSetTagPage()
+        {
+            return  this.tagPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagsPerPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagsPerPage")]
+        public Decimal TagsPerPage
+        {
+            get { return this.tagsPerPageField.GetValueOrDefault() ; }
+            set { this.tagsPerPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagsPerPage property
+        /// </summary>
+        /// <param name="tagsPerPage">TagsPerPage property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithTagsPerPage(Decimal tagsPerPage)
+        {
+            this.tagsPerPageField = tagsPerPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagsPerPage property is set
+        /// </summary>
+        /// <returns>true if TagsPerPage property is set</returns>
+        public Boolean IsSetTagsPerPage()
+        {
+            return  this.tagsPerPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagSort")]
+        public String TagSort
+        {
+            get { return this.tagSortField ; }
+            set { this.tagSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagSort property
+        /// </summary>
+        /// <param name="tagSort">TagSort property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithTagSort(String tagSort)
+        {
+            this.tagSortField = tagSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagSort property is set
+        /// </summary>
+        /// <returns>true if TagSort property is set</returns>
+        public Boolean IsSetTagSort()
+        {
+            return  this.tagSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TextStream property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TextStream")]
+        public String TextStream
+        {
+            get { return this.textStreamField ; }
+            set { this.textStreamField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TextStream property
+        /// </summary>
+        /// <param name="textStream">TextStream property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithTextStream(String textStream)
+        {
+            this.textStreamField = textStream;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TextStream property is set
+        /// </summary>
+        /// <returns>true if TextStream property is set</returns>
+        public Boolean IsSetTextStream()
+        {
+            return  this.textStreamField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReleaseDate")]
+        public String ReleaseDate
+        {
+            get { return this.releaseDateField ; }
+            set { this.releaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReleaseDate property
+        /// </summary>
+        /// <param name="releaseDate">ReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchRequest WithReleaseDate(String releaseDate)
+        {
+            this.releaseDateField = releaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReleaseDate property is set
+        /// </summary>
+        /// <returns>true if ReleaseDate property is set</returns>
+        public Boolean IsSetReleaseDate()
+        {
+            return  this.releaseDateField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetActor()) {
+                xml.Append("<Actor>");
+                xml.Append(EscapeXML(this.Actor));
+                xml.Append("</Actor>");
+            }
+            if (IsSetArtist()) {
+                xml.Append("<Artist>");
+                xml.Append(EscapeXML(this.Artist));
+                xml.Append("</Artist>");
+            }
+            if (IsSetAvailability()) {
+                xml.Append("<Availability>");
+                xml.Append(this.Availability);
+                xml.Append("</Availability>");
+            }
+            List<String> audienceRatingList  =  this.AudienceRating;
+            foreach (String audienceRating in audienceRatingList) { 
+                xml.Append("<AudienceRating>");
+                xml.Append(audienceRating);
+                xml.Append("</AudienceRating>");
+            }	
+            if (IsSetAuthor()) {
+                xml.Append("<Author>");
+                xml.Append(EscapeXML(this.Author));
+                xml.Append("</Author>");
+            }
+            if (IsSetBrand()) {
+                xml.Append("<Brand>");
+                xml.Append(EscapeXML(this.Brand));
+                xml.Append("</Brand>");
+            }
+            if (IsSetBrowseNode()) {
+                xml.Append("<BrowseNode>");
+                xml.Append(EscapeXML(this.BrowseNode));
+                xml.Append("</BrowseNode>");
+            }
+            if (IsSetCity()) {
+                xml.Append("<City>");
+                xml.Append(EscapeXML(this.City));
+                xml.Append("</City>");
+            }
+            if (IsSetComposer()) {
+                xml.Append("<Composer>");
+                xml.Append(EscapeXML(this.Composer));
+                xml.Append("</Composer>");
+            }
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(this.Condition);
+                xml.Append("</Condition>");
+            }
+            if (IsSetConductor()) {
+                xml.Append("<Conductor>");
+                xml.Append(EscapeXML(this.Conductor));
+                xml.Append("</Conductor>");
+            }
+            if (IsSetCount()) {
+                xml.Append("<Count>");
+                xml.Append(this.Count);
+                xml.Append("</Count>");
+            }
+            if (IsSetCuisine()) {
+                xml.Append("<Cuisine>");
+                xml.Append(EscapeXML(this.Cuisine));
+                xml.Append("</Cuisine>");
+            }
+            if (IsSetDeliveryMethod()) {
+                xml.Append("<DeliveryMethod>");
+                xml.Append(this.DeliveryMethod);
+                xml.Append("</DeliveryMethod>");
+            }
+            if (IsSetDirector()) {
+                xml.Append("<Director>");
+                xml.Append(EscapeXML(this.Director));
+                xml.Append("</Director>");
+            }
+            if (IsSetFutureLaunchDate()) {
+                xml.Append("<FutureLaunchDate>");
+                xml.Append(EscapeXML(this.FutureLaunchDate));
+                xml.Append("</FutureLaunchDate>");
+            }
+            if (IsSetISPUPostalCode()) {
+                xml.Append("<ISPUPostalCode>");
+                xml.Append(EscapeXML(this.ISPUPostalCode));
+                xml.Append("</ISPUPostalCode>");
+            }
+            if (IsSetItemPage()) {
+                xml.Append("<ItemPage>");
+                xml.Append(this.ItemPage);
+                xml.Append("</ItemPage>");
+            }
+            if (IsSetKeywords()) {
+                xml.Append("<Keywords>");
+                xml.Append(EscapeXML(this.Keywords));
+                xml.Append("</Keywords>");
+            }
+            if (IsSetManufacturer()) {
+                xml.Append("<Manufacturer>");
+                xml.Append(EscapeXML(this.Manufacturer));
+                xml.Append("</Manufacturer>");
+            }
+            if (IsSetMaximumPrice()) {
+                xml.Append("<MaximumPrice>");
+                xml.Append(this.MaximumPrice);
+                xml.Append("</MaximumPrice>");
+            }
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetMinimumPrice()) {
+                xml.Append("<MinimumPrice>");
+                xml.Append(this.MinimumPrice);
+                xml.Append("</MinimumPrice>");
+            }
+            if (IsSetMusicLabel()) {
+                xml.Append("<MusicLabel>");
+                xml.Append(EscapeXML(this.MusicLabel));
+                xml.Append("</MusicLabel>");
+            }
+            if (IsSetNeighborhood()) {
+                xml.Append("<Neighborhood>");
+                xml.Append(EscapeXML(this.Neighborhood));
+                xml.Append("</Neighborhood>");
+            }
+            if (IsSetOrchestra()) {
+                xml.Append("<Orchestra>");
+                xml.Append(EscapeXML(this.Orchestra));
+                xml.Append("</Orchestra>");
+            }
+            if (IsSetPostalCode()) {
+                xml.Append("<PostalCode>");
+                xml.Append(EscapeXML(this.PostalCode));
+                xml.Append("</PostalCode>");
+            }
+            if (IsSetPower()) {
+                xml.Append("<Power>");
+                xml.Append(EscapeXML(this.Power));
+                xml.Append("</Power>");
+            }
+            if (IsSetPublisher()) {
+                xml.Append("<Publisher>");
+                xml.Append(EscapeXML(this.Publisher));
+                xml.Append("</Publisher>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetReviewSort()) {
+                xml.Append("<ReviewSort>");
+                xml.Append(EscapeXML(this.ReviewSort));
+                xml.Append("</ReviewSort>");
+            }
+            if (IsSetSearchIndex()) {
+                xml.Append("<SearchIndex>");
+                xml.Append(EscapeXML(this.SearchIndex));
+                xml.Append("</SearchIndex>");
+            }
+            if (IsSetSort()) {
+                xml.Append("<Sort>");
+                xml.Append(EscapeXML(this.Sort));
+                xml.Append("</Sort>");
+            }
+            if (IsSetState()) {
+                xml.Append("<State>");
+                xml.Append(EscapeXML(this.State));
+                xml.Append("</State>");
+            }
+            if (IsSetTagPage()) {
+                xml.Append("<TagPage>");
+                xml.Append(this.TagPage);
+                xml.Append("</TagPage>");
+            }
+            if (IsSetTagsPerPage()) {
+                xml.Append("<TagsPerPage>");
+                xml.Append(this.TagsPerPage);
+                xml.Append("</TagsPerPage>");
+            }
+            if (IsSetTagSort()) {
+                xml.Append("<TagSort>");
+                xml.Append(EscapeXML(this.TagSort));
+                xml.Append("</TagSort>");
+            }
+            if (IsSetTextStream()) {
+                xml.Append("<TextStream>");
+                xml.Append(EscapeXML(this.TextStream));
+                xml.Append("</TextStream>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetReleaseDate()) {
+                xml.Append("<ReleaseDate>");
+                xml.Append(EscapeXML(this.ReleaseDate));
+                xml.Append("</ReleaseDate>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchResponse.cs
new file mode 100644
index 0000000..00e0d61
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ItemSearchResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ItemSearchResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Items> itemsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public List<Items> Items
+        {
+            get
+            {
+                if (this.itemsField == null)
+                {
+                    this.itemsField = new List<Items>();
+                }
+                return this.itemsField;
+            }
+            set { this.itemsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="list">Items property</param>
+        /// <returns>this instance</returns>
+        public ItemSearchResponse WithItems(params Items[] list)
+        {
+            foreach (Items item in list)
+            {
+                Items.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return (Items.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<ItemSearchResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Items> itemsList = this.Items;
+            foreach (Items items in itemsList) {
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            }
+            xml.Append("</ItemSearchResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Items.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Items.cs
new file mode 100644
index 0000000..7a526ba
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Items.cs
@@ -0,0 +1,403 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Items
+    {
+    
+        private  CorrectedQuery correctedQueryField;
+        private String qidField;
+
+        private String engineQueryField;
+
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  SearchResultsMap searchResultsMapField;
+        private  List<Item> itemField;
+
+
+        /// <summary>
+        /// Gets and sets the CorrectedQuery property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CorrectedQuery")]
+        public CorrectedQuery CorrectedQuery
+        {
+            get { return this.correctedQueryField ; }
+            set { this.correctedQueryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CorrectedQuery property
+        /// </summary>
+        /// <param name="correctedQuery">CorrectedQuery property</param>
+        /// <returns>this instance</returns>
+        public Items WithCorrectedQuery(CorrectedQuery correctedQuery)
+        {
+            this.correctedQueryField = correctedQuery;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CorrectedQuery property is set
+        /// </summary>
+        /// <returns>true if CorrectedQuery property is set</returns>
+        public Boolean IsSetCorrectedQuery()
+        {
+            return this.correctedQueryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Qid property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Qid")]
+        public String Qid
+        {
+            get { return this.qidField ; }
+            set { this.qidField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Qid property
+        /// </summary>
+        /// <param name="qid">Qid property</param>
+        /// <returns>this instance</returns>
+        public Items WithQid(String qid)
+        {
+            this.qidField = qid;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Qid property is set
+        /// </summary>
+        /// <returns>true if Qid property is set</returns>
+        public Boolean IsSetQid()
+        {
+            return  this.qidField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EngineQuery property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EngineQuery")]
+        public String EngineQuery
+        {
+            get { return this.engineQueryField ; }
+            set { this.engineQueryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EngineQuery property
+        /// </summary>
+        /// <param name="engineQuery">EngineQuery property</param>
+        /// <returns>this instance</returns>
+        public Items WithEngineQuery(String engineQuery)
+        {
+            this.engineQueryField = engineQuery;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EngineQuery property is set
+        /// </summary>
+        /// <returns>true if EngineQuery property is set</returns>
+        public Boolean IsSetEngineQuery()
+        {
+            return  this.engineQueryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public Items WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public Items WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SearchResultsMap property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchResultsMap")]
+        public SearchResultsMap SearchResultsMap
+        {
+            get { return this.searchResultsMapField ; }
+            set { this.searchResultsMapField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchResultsMap property
+        /// </summary>
+        /// <param name="searchResultsMap">SearchResultsMap property</param>
+        /// <returns>this instance</returns>
+        public Items WithSearchResultsMap(SearchResultsMap searchResultsMap)
+        {
+            this.searchResultsMapField = searchResultsMap;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SearchResultsMap property is set
+        /// </summary>
+        /// <returns>true if SearchResultsMap property is set</returns>
+        public Boolean IsSetSearchResultsMap()
+        {
+            return this.searchResultsMapField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public List<Item> Item
+        {
+            get
+            {
+                if (this.itemField == null)
+                {
+                    this.itemField = new List<Item>();
+                }
+                return this.itemField;
+            }
+            set { this.itemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="list">Item property</param>
+        /// <returns>this instance</returns>
+        public Items WithItem(params Item[] list)
+        {
+            foreach (Item item in list)
+            {
+                Item.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return (Item.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCorrectedQuery()) {
+                CorrectedQuery  correctedQuery = this.CorrectedQuery;
+                xml.Append("<CorrectedQuery>");
+                xml.Append(correctedQuery.ToXMLFragment());
+                xml.Append("</CorrectedQuery>");
+            } 
+            if (IsSetQid()) {
+                xml.Append("<Qid>");
+                xml.Append(EscapeXML(this.Qid));
+                xml.Append("</Qid>");
+            }
+            if (IsSetEngineQuery()) {
+                xml.Append("<EngineQuery>");
+                xml.Append(EscapeXML(this.EngineQuery));
+                xml.Append("</EngineQuery>");
+            }
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            if (IsSetSearchResultsMap()) {
+                SearchResultsMap  searchResultsMap = this.SearchResultsMap;
+                xml.Append("<SearchResultsMap>");
+                xml.Append(searchResultsMap.ToXMLFragment());
+                xml.Append("</SearchResultsMap>");
+            } 
+            List<Item> itemList = this.Item;
+            foreach (Item item in itemList) {
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Language.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Language.cs
new file mode 100644
index 0000000..203f14c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Language.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Language
+    {
+    
+        private String nameField;
+
+        private String typeField;
+
+        private String audioFormatField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Language WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Type property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Type")]
+        public String Type
+        {
+            get { return this.typeField ; }
+            set { this.typeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Type property
+        /// </summary>
+        /// <param name="type">Type property</param>
+        /// <returns>this instance</returns>
+        public Language WithType(String type)
+        {
+            this.typeField = type;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Type property is set
+        /// </summary>
+        /// <returns>true if Type property is set</returns>
+        public Boolean IsSetType()
+        {
+            return  this.typeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudioFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudioFormat")]
+        public String AudioFormat
+        {
+            get { return this.audioFormatField ; }
+            set { this.audioFormatField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudioFormat property
+        /// </summary>
+        /// <param name="audioFormat">AudioFormat property</param>
+        /// <returns>this instance</returns>
+        public Language WithAudioFormat(String audioFormat)
+        {
+            this.audioFormatField = audioFormat;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AudioFormat property is set
+        /// </summary>
+        /// <returns>true if AudioFormat property is set</returns>
+        public Boolean IsSetAudioFormat()
+        {
+            return  this.audioFormatField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetType()) {
+                xml.Append("<Type>");
+                xml.Append(EscapeXML(this.Type));
+                xml.Append("</Type>");
+            }
+            if (IsSetAudioFormat()) {
+                xml.Append("<AudioFormat>");
+                xml.Append(EscapeXML(this.AudioFormat));
+                xml.Append("</AudioFormat>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Languages.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Languages.cs
new file mode 100644
index 0000000..d2bcee8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Languages.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Languages
+    {
+    
+        private  List<Language> languageField;
+
+
+        /// <summary>
+        /// Gets and sets the Language property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Language")]
+        public List<Language> Language
+        {
+            get
+            {
+                if (this.languageField == null)
+                {
+                    this.languageField = new List<Language>();
+                }
+                return this.languageField;
+            }
+            set { this.languageField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Language property
+        /// </summary>
+        /// <param name="list">Language property</param>
+        /// <returns>this instance</returns>
+        public Languages WithLanguage(params Language[] list)
+        {
+            foreach (Language item in list)
+            {
+                Language.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Language property is set
+        /// </summary>
+        /// <returns>true if Language property is set</returns>
+        public Boolean IsSetLanguage()
+        {
+            return (Language.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Language> languageList = this.Language;
+            foreach (Language language in languageList) {
+                xml.Append("<Language>");
+                xml.Append(language.ToXMLFragment());
+                xml.Append("</Language>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/List.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/List.cs
new file mode 100644
index 0000000..372471d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/List.cs
@@ -0,0 +1,866 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class List
+    {
+    
+        private String listIdField;
+
+        private String listURLField;
+
+        private String registryNumberField;
+
+        private String listNameField;
+
+        private String listTypeField;
+
+        private Decimal? totalItemsField;
+
+        private Decimal? totalPagesField;
+
+        private String dateCreatedField;
+
+        private String occasionDateField;
+
+        private String customerNameField;
+
+        private String partnerNameField;
+
+        private String additionalNameField;
+
+        private String commentField;
+
+        private  Image imageField;
+        private Decimal? averageRatingField;
+
+        private Decimal? totalVotesField;
+
+        private Decimal? totalTimesReadField;
+
+        private  Tags tagsField;
+
+        /// <summary>
+        /// Gets and sets the ListId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListId")]
+        public String ListId
+        {
+            get { return this.listIdField ; }
+            set { this.listIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListId property
+        /// </summary>
+        /// <param name="listId">ListId property</param>
+        /// <returns>this instance</returns>
+        public List WithListId(String listId)
+        {
+            this.listIdField = listId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListId property is set
+        /// </summary>
+        /// <returns>true if ListId property is set</returns>
+        public Boolean IsSetListId()
+        {
+            return  this.listIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListURL property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListURL")]
+        public String ListURL
+        {
+            get { return this.listURLField ; }
+            set { this.listURLField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListURL property
+        /// </summary>
+        /// <param name="listURL">ListURL property</param>
+        /// <returns>this instance</returns>
+        public List WithListURL(String listURL)
+        {
+            this.listURLField = listURL;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListURL property is set
+        /// </summary>
+        /// <returns>true if ListURL property is set</returns>
+        public Boolean IsSetListURL()
+        {
+            return  this.listURLField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RegistryNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RegistryNumber")]
+        public String RegistryNumber
+        {
+            get { return this.registryNumberField ; }
+            set { this.registryNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RegistryNumber property
+        /// </summary>
+        /// <param name="registryNumber">RegistryNumber property</param>
+        /// <returns>this instance</returns>
+        public List WithRegistryNumber(String registryNumber)
+        {
+            this.registryNumberField = registryNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RegistryNumber property is set
+        /// </summary>
+        /// <returns>true if RegistryNumber property is set</returns>
+        public Boolean IsSetRegistryNumber()
+        {
+            return  this.registryNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListName")]
+        public String ListName
+        {
+            get { return this.listNameField ; }
+            set { this.listNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListName property
+        /// </summary>
+        /// <param name="listName">ListName property</param>
+        /// <returns>this instance</returns>
+        public List WithListName(String listName)
+        {
+            this.listNameField = listName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListName property is set
+        /// </summary>
+        /// <returns>true if ListName property is set</returns>
+        public Boolean IsSetListName()
+        {
+            return  this.listNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListType")]
+        public String ListType
+        {
+            get { return this.listTypeField ; }
+            set { this.listTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListType property
+        /// </summary>
+        /// <param name="listType">ListType property</param>
+        /// <returns>this instance</returns>
+        public List WithListType(String listType)
+        {
+            this.listTypeField = listType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListType property is set
+        /// </summary>
+        /// <returns>true if ListType property is set</returns>
+        public Boolean IsSetListType()
+        {
+            return this.listTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalItems")]
+        public Decimal TotalItems
+        {
+            get { return this.totalItemsField.GetValueOrDefault() ; }
+            set { this.totalItemsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalItems property
+        /// </summary>
+        /// <param name="totalItems">TotalItems property</param>
+        /// <returns>this instance</returns>
+        public List WithTotalItems(Decimal totalItems)
+        {
+            this.totalItemsField = totalItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalItems property is set
+        /// </summary>
+        /// <returns>true if TotalItems property is set</returns>
+        public Boolean IsSetTotalItems()
+        {
+            return  this.totalItemsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public List WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DateCreated property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DateCreated")]
+        public String DateCreated
+        {
+            get { return this.dateCreatedField ; }
+            set { this.dateCreatedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DateCreated property
+        /// </summary>
+        /// <param name="dateCreated">DateCreated property</param>
+        /// <returns>this instance</returns>
+        public List WithDateCreated(String dateCreated)
+        {
+            this.dateCreatedField = dateCreated;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DateCreated property is set
+        /// </summary>
+        /// <returns>true if DateCreated property is set</returns>
+        public Boolean IsSetDateCreated()
+        {
+            return  this.dateCreatedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OccasionDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OccasionDate")]
+        public String OccasionDate
+        {
+            get { return this.occasionDateField ; }
+            set { this.occasionDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OccasionDate property
+        /// </summary>
+        /// <param name="occasionDate">OccasionDate property</param>
+        /// <returns>this instance</returns>
+        public List WithOccasionDate(String occasionDate)
+        {
+            this.occasionDateField = occasionDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OccasionDate property is set
+        /// </summary>
+        /// <returns>true if OccasionDate property is set</returns>
+        public Boolean IsSetOccasionDate()
+        {
+            return  this.occasionDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CustomerName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerName")]
+        public String CustomerName
+        {
+            get { return this.customerNameField ; }
+            set { this.customerNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerName property
+        /// </summary>
+        /// <param name="customerName">CustomerName property</param>
+        /// <returns>this instance</returns>
+        public List WithCustomerName(String customerName)
+        {
+            this.customerNameField = customerName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerName property is set
+        /// </summary>
+        /// <returns>true if CustomerName property is set</returns>
+        public Boolean IsSetCustomerName()
+        {
+            return  this.customerNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PartnerName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PartnerName")]
+        public String PartnerName
+        {
+            get { return this.partnerNameField ; }
+            set { this.partnerNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PartnerName property
+        /// </summary>
+        /// <param name="partnerName">PartnerName property</param>
+        /// <returns>this instance</returns>
+        public List WithPartnerName(String partnerName)
+        {
+            this.partnerNameField = partnerName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PartnerName property is set
+        /// </summary>
+        /// <returns>true if PartnerName property is set</returns>
+        public Boolean IsSetPartnerName()
+        {
+            return  this.partnerNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AdditionalName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AdditionalName")]
+        public String AdditionalName
+        {
+            get { return this.additionalNameField ; }
+            set { this.additionalNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AdditionalName property
+        /// </summary>
+        /// <param name="additionalName">AdditionalName property</param>
+        /// <returns>this instance</returns>
+        public List WithAdditionalName(String additionalName)
+        {
+            this.additionalNameField = additionalName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AdditionalName property is set
+        /// </summary>
+        /// <returns>true if AdditionalName property is set</returns>
+        public Boolean IsSetAdditionalName()
+        {
+            return  this.additionalNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Comment property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Comment")]
+        public String Comment
+        {
+            get { return this.commentField ; }
+            set { this.commentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Comment property
+        /// </summary>
+        /// <param name="comment">Comment property</param>
+        /// <returns>this instance</returns>
+        public List WithComment(String comment)
+        {
+            this.commentField = comment;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Comment property is set
+        /// </summary>
+        /// <returns>true if Comment property is set</returns>
+        public Boolean IsSetComment()
+        {
+            return  this.commentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Image property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Image")]
+        public Image Image
+        {
+            get { return this.imageField ; }
+            set { this.imageField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Image property
+        /// </summary>
+        /// <param name="image">Image property</param>
+        /// <returns>this instance</returns>
+        public List WithImage(Image image)
+        {
+            this.imageField = image;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Image property is set
+        /// </summary>
+        /// <returns>true if Image property is set</returns>
+        public Boolean IsSetImage()
+        {
+            return this.imageField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AverageRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AverageRating")]
+        public Decimal AverageRating
+        {
+            get { return this.averageRatingField.GetValueOrDefault() ; }
+            set { this.averageRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AverageRating property
+        /// </summary>
+        /// <param name="averageRating">AverageRating property</param>
+        /// <returns>this instance</returns>
+        public List WithAverageRating(Decimal averageRating)
+        {
+            this.averageRatingField = averageRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AverageRating property is set
+        /// </summary>
+        /// <returns>true if AverageRating property is set</returns>
+        public Boolean IsSetAverageRating()
+        {
+            return  this.averageRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalVotes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVotes")]
+        public Decimal TotalVotes
+        {
+            get { return this.totalVotesField.GetValueOrDefault() ; }
+            set { this.totalVotesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVotes property
+        /// </summary>
+        /// <param name="totalVotes">TotalVotes property</param>
+        /// <returns>this instance</returns>
+        public List WithTotalVotes(Decimal totalVotes)
+        {
+            this.totalVotesField = totalVotes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVotes property is set
+        /// </summary>
+        /// <returns>true if TotalVotes property is set</returns>
+        public Boolean IsSetTotalVotes()
+        {
+            return  this.totalVotesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalTimesRead property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalTimesRead")]
+        public Decimal TotalTimesRead
+        {
+            get { return this.totalTimesReadField.GetValueOrDefault() ; }
+            set { this.totalTimesReadField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalTimesRead property
+        /// </summary>
+        /// <param name="totalTimesRead">TotalTimesRead property</param>
+        /// <returns>this instance</returns>
+        public List WithTotalTimesRead(Decimal totalTimesRead)
+        {
+            this.totalTimesReadField = totalTimesRead;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalTimesRead property is set
+        /// </summary>
+        /// <returns>true if TotalTimesRead property is set</returns>
+        public Boolean IsSetTotalTimesRead()
+        {
+            return  this.totalTimesReadField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Tags property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tags")]
+        public Tags Tags
+        {
+            get { return this.tagsField ; }
+            set { this.tagsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tags property
+        /// </summary>
+        /// <param name="tags">Tags property</param>
+        /// <returns>this instance</returns>
+        public List WithTags(Tags tags)
+        {
+            this.tagsField = tags;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Tags property is set
+        /// </summary>
+        /// <returns>true if Tags property is set</returns>
+        public Boolean IsSetTags()
+        {
+            return this.tagsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetListId()) {
+                xml.Append("<ListId>");
+                xml.Append(EscapeXML(this.ListId));
+                xml.Append("</ListId>");
+            }
+            if (IsSetListURL()) {
+                xml.Append("<ListURL>");
+                xml.Append(EscapeXML(this.ListURL));
+                xml.Append("</ListURL>");
+            }
+            if (IsSetRegistryNumber()) {
+                xml.Append("<RegistryNumber>");
+                xml.Append(EscapeXML(this.RegistryNumber));
+                xml.Append("</RegistryNumber>");
+            }
+            if (IsSetListName()) {
+                xml.Append("<ListName>");
+                xml.Append(EscapeXML(this.ListName));
+                xml.Append("</ListName>");
+            }
+            if (IsSetListType()) {
+                xml.Append("<ListType>");
+                xml.Append(this.ListType);
+                xml.Append("</ListType>");
+            }
+            if (IsSetTotalItems()) {
+                xml.Append("<TotalItems>");
+                xml.Append(this.TotalItems);
+                xml.Append("</TotalItems>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            if (IsSetDateCreated()) {
+                xml.Append("<DateCreated>");
+                xml.Append(EscapeXML(this.DateCreated));
+                xml.Append("</DateCreated>");
+            }
+            if (IsSetOccasionDate()) {
+                xml.Append("<OccasionDate>");
+                xml.Append(EscapeXML(this.OccasionDate));
+                xml.Append("</OccasionDate>");
+            }
+            if (IsSetCustomerName()) {
+                xml.Append("<CustomerName>");
+                xml.Append(EscapeXML(this.CustomerName));
+                xml.Append("</CustomerName>");
+            }
+            if (IsSetPartnerName()) {
+                xml.Append("<PartnerName>");
+                xml.Append(EscapeXML(this.PartnerName));
+                xml.Append("</PartnerName>");
+            }
+            if (IsSetAdditionalName()) {
+                xml.Append("<AdditionalName>");
+                xml.Append(EscapeXML(this.AdditionalName));
+                xml.Append("</AdditionalName>");
+            }
+            if (IsSetComment()) {
+                xml.Append("<Comment>");
+                xml.Append(EscapeXML(this.Comment));
+                xml.Append("</Comment>");
+            }
+            if (IsSetImage()) {
+                Image  image = this.Image;
+                xml.Append("<Image>");
+                xml.Append(image.ToXMLFragment());
+                xml.Append("</Image>");
+            } 
+            if (IsSetAverageRating()) {
+                xml.Append("<AverageRating>");
+                xml.Append(this.AverageRating);
+                xml.Append("</AverageRating>");
+            }
+            if (IsSetTotalVotes()) {
+                xml.Append("<TotalVotes>");
+                xml.Append(this.TotalVotes);
+                xml.Append("</TotalVotes>");
+            }
+            if (IsSetTotalTimesRead()) {
+                xml.Append("<TotalTimesRead>");
+                xml.Append(this.TotalTimesRead);
+                xml.Append("</TotalTimesRead>");
+            }
+            if (IsSetTags()) {
+                Tags  tags = this.Tags;
+                xml.Append("<Tags>");
+                xml.Append(tags.ToXMLFragment());
+                xml.Append("</Tags>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListItem.cs
new file mode 100644
index 0000000..b46ae13
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListItem.cs
@@ -0,0 +1,349 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListItem
+    {
+    
+        private String listItemIdField;
+
+        private String dateAddedField;
+
+        private String commentField;
+
+        private String quantityDesiredField;
+
+        private String quantityReceivedField;
+
+        private  Item itemField;
+
+        /// <summary>
+        /// Gets and sets the ListItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListItemId")]
+        public String ListItemId
+        {
+            get { return this.listItemIdField ; }
+            set { this.listItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListItemId property
+        /// </summary>
+        /// <param name="listItemId">ListItemId property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithListItemId(String listItemId)
+        {
+            this.listItemIdField = listItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListItemId property is set
+        /// </summary>
+        /// <returns>true if ListItemId property is set</returns>
+        public Boolean IsSetListItemId()
+        {
+            return  this.listItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DateAdded property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DateAdded")]
+        public String DateAdded
+        {
+            get { return this.dateAddedField ; }
+            set { this.dateAddedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DateAdded property
+        /// </summary>
+        /// <param name="dateAdded">DateAdded property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithDateAdded(String dateAdded)
+        {
+            this.dateAddedField = dateAdded;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DateAdded property is set
+        /// </summary>
+        /// <returns>true if DateAdded property is set</returns>
+        public Boolean IsSetDateAdded()
+        {
+            return  this.dateAddedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Comment property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Comment")]
+        public String Comment
+        {
+            get { return this.commentField ; }
+            set { this.commentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Comment property
+        /// </summary>
+        /// <param name="comment">Comment property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithComment(String comment)
+        {
+            this.commentField = comment;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Comment property is set
+        /// </summary>
+        /// <returns>true if Comment property is set</returns>
+        public Boolean IsSetComment()
+        {
+            return  this.commentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the QuantityDesired property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "QuantityDesired")]
+        public String QuantityDesired
+        {
+            get { return this.quantityDesiredField ; }
+            set { this.quantityDesiredField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the QuantityDesired property
+        /// </summary>
+        /// <param name="quantityDesired">QuantityDesired property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithQuantityDesired(String quantityDesired)
+        {
+            this.quantityDesiredField = quantityDesired;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if QuantityDesired property is set
+        /// </summary>
+        /// <returns>true if QuantityDesired property is set</returns>
+        public Boolean IsSetQuantityDesired()
+        {
+            return  this.quantityDesiredField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the QuantityReceived property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "QuantityReceived")]
+        public String QuantityReceived
+        {
+            get { return this.quantityReceivedField ; }
+            set { this.quantityReceivedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the QuantityReceived property
+        /// </summary>
+        /// <param name="quantityReceived">QuantityReceived property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithQuantityReceived(String quantityReceived)
+        {
+            this.quantityReceivedField = quantityReceived;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if QuantityReceived property is set
+        /// </summary>
+        /// <returns>true if QuantityReceived property is set</returns>
+        public Boolean IsSetQuantityReceived()
+        {
+            return  this.quantityReceivedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public Item Item
+        {
+            get { return this.itemField ; }
+            set { this.itemField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="item">Item property</param>
+        /// <returns>this instance</returns>
+        public ListItem WithItem(Item item)
+        {
+            this.itemField = item;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return this.itemField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetListItemId()) {
+                xml.Append("<ListItemId>");
+                xml.Append(EscapeXML(this.ListItemId));
+                xml.Append("</ListItemId>");
+            }
+            if (IsSetDateAdded()) {
+                xml.Append("<DateAdded>");
+                xml.Append(EscapeXML(this.DateAdded));
+                xml.Append("</DateAdded>");
+            }
+            if (IsSetComment()) {
+                xml.Append("<Comment>");
+                xml.Append(EscapeXML(this.Comment));
+                xml.Append("</Comment>");
+            }
+            if (IsSetQuantityDesired()) {
+                xml.Append("<QuantityDesired>");
+                xml.Append(EscapeXML(this.QuantityDesired));
+                xml.Append("</QuantityDesired>");
+            }
+            if (IsSetQuantityReceived()) {
+                xml.Append("<QuantityReceived>");
+                xml.Append(EscapeXML(this.QuantityReceived));
+                xml.Append("</QuantityReceived>");
+            }
+            if (IsSetItem()) {
+                Item  item = this.Item;
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookup.cs
new file mode 100644
index 0000000..630c2bd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookup.cs
@@ -0,0 +1,150 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListLookup
+    {
+    
+        private  List<ListLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<ListLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<ListLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public ListLookup WithRequest(params ListLookupRequest[] list)
+        {
+            foreach (ListLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "ListLookup");
+            List<ListLookupRequest> requestList = Request;
+            foreach (ListLookupRequest request in requestList) 
+            {
+                if (request.IsSetCondition()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Condition", request.Condition.ToString());
+                }
+                if (request.IsSetDeliveryMethod()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "DeliveryMethod", request.DeliveryMethod.ToString());
+                }
+                if (request.IsSetISPUPostalCode()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ISPUPostalCode", request.ISPUPostalCode);
+                }
+                if (request.IsSetListId()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ListId", request.ListId);
+                }
+                if (request.IsSetListType()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ListType", request.ListType.ToString());
+                }
+                if (request.IsSetMerchantId()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "MerchantId", request.MerchantId);
+                }
+                if (request.IsSetProductGroup()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ProductGroup", request.ProductGroup);
+                }
+                if (request.IsSetProductPage()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ProductPage", request.ProductPage + "");
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetReviewSort()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewSort", request.ReviewSort);
+                }
+                if (request.IsSetSort()) 
+                {
+                    parameters.Add("ListLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Sort", request.Sort);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupRequest.cs
new file mode 100644
index 0000000..8b8fe7d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupRequest.cs
@@ -0,0 +1,575 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListLookupRequest
+    {
+    
+        private Condition? conditionField;
+
+        private DeliveryMethod? deliveryMethodField;
+
+        private String ISPUPostalCodeField;
+
+        private String listIdField;
+
+        private String listTypeField;
+
+        private String merchantIdField;
+
+        private String productGroupField;
+
+        private Decimal? productPageField;
+
+        private List<String> responseGroupField;
+
+        private String reviewSortField;
+
+        private String sortField;
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public Condition Condition
+        {
+            get { return this.conditionField.GetValueOrDefault() ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithCondition(Condition condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return this.conditionField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryMethod")]
+        public DeliveryMethod DeliveryMethod
+        {
+            get { return this.deliveryMethodField.GetValueOrDefault() ; }
+            set { this.deliveryMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryMethod property
+        /// </summary>
+        /// <param name="deliveryMethod">DeliveryMethod property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithDeliveryMethod(DeliveryMethod deliveryMethod)
+        {
+            this.deliveryMethodField = deliveryMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryMethod property is set
+        /// </summary>
+        /// <returns>true if DeliveryMethod property is set</returns>
+        public Boolean IsSetDeliveryMethod()
+        {
+            return this.deliveryMethodField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISPUPostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUPostalCode")]
+        public String ISPUPostalCode
+        {
+            get { return this.ISPUPostalCodeField ; }
+            set { this.ISPUPostalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUPostalCode property
+        /// </summary>
+        /// <param name="ISPUPostalCode">ISPUPostalCode property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithISPUPostalCode(String ISPUPostalCode)
+        {
+            this.ISPUPostalCodeField = ISPUPostalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUPostalCode property is set
+        /// </summary>
+        /// <returns>true if ISPUPostalCode property is set</returns>
+        public Boolean IsSetISPUPostalCode()
+        {
+            return  this.ISPUPostalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListId")]
+        public String ListId
+        {
+            get { return this.listIdField ; }
+            set { this.listIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListId property
+        /// </summary>
+        /// <param name="listId">ListId property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithListId(String listId)
+        {
+            this.listIdField = listId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListId property is set
+        /// </summary>
+        /// <returns>true if ListId property is set</returns>
+        public Boolean IsSetListId()
+        {
+            return  this.listIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListType")]
+        public String ListType
+        {
+            get { return this.listTypeField ; }
+            set { this.listTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListType property
+        /// </summary>
+        /// <param name="listType">ListType property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithListType(String listType)
+        {
+            this.listTypeField = listType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListType property is set
+        /// </summary>
+        /// <returns>true if ListType property is set</returns>
+        public Boolean IsSetListType()
+        {
+            return this.listTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductGroup")]
+        public String ProductGroup
+        {
+            get { return this.productGroupField ; }
+            set { this.productGroupField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductGroup property
+        /// </summary>
+        /// <param name="productGroup">ProductGroup property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithProductGroup(String productGroup)
+        {
+            this.productGroupField = productGroup;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductGroup property is set
+        /// </summary>
+        /// <returns>true if ProductGroup property is set</returns>
+        public Boolean IsSetProductGroup()
+        {
+            return  this.productGroupField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductPage")]
+        public Decimal ProductPage
+        {
+            get { return this.productPageField.GetValueOrDefault() ; }
+            set { this.productPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductPage property
+        /// </summary>
+        /// <param name="productPage">ProductPage property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithProductPage(Decimal productPage)
+        {
+            this.productPageField = productPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductPage property is set
+        /// </summary>
+        /// <returns>true if ProductPage property is set</returns>
+        public Boolean IsSetProductPage()
+        {
+            return  this.productPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReviewSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewSort")]
+        public String ReviewSort
+        {
+            get { return this.reviewSortField ; }
+            set { this.reviewSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewSort property
+        /// </summary>
+        /// <param name="reviewSort">ReviewSort property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithReviewSort(String reviewSort)
+        {
+            this.reviewSortField = reviewSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewSort property is set
+        /// </summary>
+        /// <returns>true if ReviewSort property is set</returns>
+        public Boolean IsSetReviewSort()
+        {
+            return  this.reviewSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Sort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Sort")]
+        public String Sort
+        {
+            get { return this.sortField ; }
+            set { this.sortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Sort property
+        /// </summary>
+        /// <param name="sort">Sort property</param>
+        /// <returns>this instance</returns>
+        public ListLookupRequest WithSort(String sort)
+        {
+            this.sortField = sort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Sort property is set
+        /// </summary>
+        /// <returns>true if Sort property is set</returns>
+        public Boolean IsSetSort()
+        {
+            return  this.sortField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(this.Condition);
+                xml.Append("</Condition>");
+            }
+            if (IsSetDeliveryMethod()) {
+                xml.Append("<DeliveryMethod>");
+                xml.Append(this.DeliveryMethod);
+                xml.Append("</DeliveryMethod>");
+            }
+            if (IsSetISPUPostalCode()) {
+                xml.Append("<ISPUPostalCode>");
+                xml.Append(EscapeXML(this.ISPUPostalCode));
+                xml.Append("</ISPUPostalCode>");
+            }
+            if (IsSetListId()) {
+                xml.Append("<ListId>");
+                xml.Append(EscapeXML(this.ListId));
+                xml.Append("</ListId>");
+            }
+            if (IsSetListType()) {
+                xml.Append("<ListType>");
+                xml.Append(this.ListType);
+                xml.Append("</ListType>");
+            }
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetProductGroup()) {
+                xml.Append("<ProductGroup>");
+                xml.Append(EscapeXML(this.ProductGroup));
+                xml.Append("</ProductGroup>");
+            }
+            if (IsSetProductPage()) {
+                xml.Append("<ProductPage>");
+                xml.Append(this.ProductPage);
+                xml.Append("</ProductPage>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetReviewSort()) {
+                xml.Append("<ReviewSort>");
+                xml.Append(EscapeXML(this.ReviewSort));
+                xml.Append("</ReviewSort>");
+            }
+            if (IsSetSort()) {
+                xml.Append("<Sort>");
+                xml.Append(EscapeXML(this.Sort));
+                xml.Append("</Sort>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupResponse.cs
new file mode 100644
index 0000000..3a2a35c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Lists> listsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public ListLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Lists property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Lists")]
+        public List<Lists> Lists
+        {
+            get
+            {
+                if (this.listsField == null)
+                {
+                    this.listsField = new List<Lists>();
+                }
+                return this.listsField;
+            }
+            set { this.listsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Lists property
+        /// </summary>
+        /// <param name="list">Lists property</param>
+        /// <returns>this instance</returns>
+        public ListLookupResponse WithLists(params Lists[] list)
+        {
+            foreach (Lists item in list)
+            {
+                Lists.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Lists property is set
+        /// </summary>
+        /// <returns>true if Lists property is set</returns>
+        public Boolean IsSetLists()
+        {
+            return (Lists.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<ListLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Lists> listsList = this.Lists;
+            foreach (Lists lists in listsList) {
+                xml.Append("<Lists>");
+                xml.Append(lists.ToXMLFragment());
+                xml.Append("</Lists>");
+            }
+            xml.Append("</ListLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearch.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearch.cs
new file mode 100644
index 0000000..12ea727
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearch.cs
@@ -0,0 +1,142 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListSearch
+    {
+    
+        private  List<ListSearchRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<ListSearchRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<ListSearchRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public ListSearch WithRequest(params ListSearchRequest[] list)
+        {
+            foreach (ListSearchRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "ListSearch");
+            List<ListSearchRequest> requestList = Request;
+            foreach (ListSearchRequest request in requestList) 
+            {
+                if (request.IsSetCity()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "City", request.City);
+                }
+                if (request.IsSetEmail()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Email", request.Email);
+                }
+                if (request.IsSetFirstName()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "FirstName", request.FirstName);
+                }
+                if (request.IsSetLastName()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "LastName", request.LastName);
+                }
+                if (request.IsSetListPage()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ListPage", request.ListPage + "");
+                }
+                if (request.IsSetListType()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ListType", request.ListType.ToString());
+                }
+                if (request.IsSetName()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Name", request.Name);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetState()) 
+                {
+                    parameters.Add("ListSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "State", request.State);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchRequest.cs
new file mode 100644
index 0000000..b5fe6fd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchRequest.cs
@@ -0,0 +1,489 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListSearchRequest
+    {
+    
+        private String cityField;
+
+        private String emailField;
+
+        private String firstNameField;
+
+        private String lastNameField;
+
+        private Decimal? listPageField;
+
+        private String listTypeField;
+
+        private String nameField;
+
+        private List<String> responseGroupField;
+
+        private String stateField;
+
+
+        /// <summary>
+        /// Gets and sets the City property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "City")]
+        public String City
+        {
+            get { return this.cityField ; }
+            set { this.cityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the City property
+        /// </summary>
+        /// <param name="city">City property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithCity(String city)
+        {
+            this.cityField = city;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if City property is set
+        /// </summary>
+        /// <returns>true if City property is set</returns>
+        public Boolean IsSetCity()
+        {
+            return  this.cityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Email property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Email")]
+        public String Email
+        {
+            get { return this.emailField ; }
+            set { this.emailField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Email property
+        /// </summary>
+        /// <param name="email">Email property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithEmail(String email)
+        {
+            this.emailField = email;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Email property is set
+        /// </summary>
+        /// <returns>true if Email property is set</returns>
+        public Boolean IsSetEmail()
+        {
+            return  this.emailField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstName")]
+        public String FirstName
+        {
+            get { return this.firstNameField ; }
+            set { this.firstNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstName property
+        /// </summary>
+        /// <param name="firstName">FirstName property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithFirstName(String firstName)
+        {
+            this.firstNameField = firstName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstName property is set
+        /// </summary>
+        /// <returns>true if FirstName property is set</returns>
+        public Boolean IsSetFirstName()
+        {
+            return  this.firstNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LastName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LastName")]
+        public String LastName
+        {
+            get { return this.lastNameField ; }
+            set { this.lastNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LastName property
+        /// </summary>
+        /// <param name="lastName">LastName property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithLastName(String lastName)
+        {
+            this.lastNameField = lastName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LastName property is set
+        /// </summary>
+        /// <returns>true if LastName property is set</returns>
+        public Boolean IsSetLastName()
+        {
+            return  this.lastNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListPage")]
+        public Decimal ListPage
+        {
+            get { return this.listPageField.GetValueOrDefault() ; }
+            set { this.listPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListPage property
+        /// </summary>
+        /// <param name="listPage">ListPage property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithListPage(Decimal listPage)
+        {
+            this.listPageField = listPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListPage property is set
+        /// </summary>
+        /// <returns>true if ListPage property is set</returns>
+        public Boolean IsSetListPage()
+        {
+            return  this.listPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListType")]
+        public String ListType
+        {
+            get { return this.listTypeField ; }
+            set { this.listTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListType property
+        /// </summary>
+        /// <param name="listType">ListType property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithListType(String listType)
+        {
+            this.listTypeField = listType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListType property is set
+        /// </summary>
+        /// <returns>true if ListType property is set</returns>
+        public Boolean IsSetListType()
+        {
+            return this.listTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the State property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "State")]
+        public String State
+        {
+            get { return this.stateField ; }
+            set { this.stateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the State property
+        /// </summary>
+        /// <param name="state">State property</param>
+        /// <returns>this instance</returns>
+        public ListSearchRequest WithState(String state)
+        {
+            this.stateField = state;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if State property is set
+        /// </summary>
+        /// <returns>true if State property is set</returns>
+        public Boolean IsSetState()
+        {
+            return  this.stateField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCity()) {
+                xml.Append("<City>");
+                xml.Append(EscapeXML(this.City));
+                xml.Append("</City>");
+            }
+            if (IsSetEmail()) {
+                xml.Append("<Email>");
+                xml.Append(EscapeXML(this.Email));
+                xml.Append("</Email>");
+            }
+            if (IsSetFirstName()) {
+                xml.Append("<FirstName>");
+                xml.Append(EscapeXML(this.FirstName));
+                xml.Append("</FirstName>");
+            }
+            if (IsSetLastName()) {
+                xml.Append("<LastName>");
+                xml.Append(EscapeXML(this.LastName));
+                xml.Append("</LastName>");
+            }
+            if (IsSetListPage()) {
+                xml.Append("<ListPage>");
+                xml.Append(this.ListPage);
+                xml.Append("</ListPage>");
+            }
+            if (IsSetListType()) {
+                xml.Append("<ListType>");
+                xml.Append(this.ListType);
+                xml.Append("</ListType>");
+            }
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetState()) {
+                xml.Append("<State>");
+                xml.Append(EscapeXML(this.State));
+                xml.Append("</State>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchResponse.cs
new file mode 100644
index 0000000..a6689e9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListSearchResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListSearchResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Lists> listsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public ListSearchResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Lists property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Lists")]
+        public List<Lists> Lists
+        {
+            get
+            {
+                if (this.listsField == null)
+                {
+                    this.listsField = new List<Lists>();
+                }
+                return this.listsField;
+            }
+            set { this.listsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Lists property
+        /// </summary>
+        /// <param name="list">Lists property</param>
+        /// <returns>this instance</returns>
+        public ListSearchResponse WithLists(params Lists[] list)
+        {
+            foreach (Lists item in list)
+            {
+                Lists.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Lists property is set
+        /// </summary>
+        /// <returns>true if Lists property is set</returns>
+        public Boolean IsSetLists()
+        {
+            return (Lists.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<ListSearchResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Lists> listsList = this.Lists;
+            foreach (Lists lists in listsList) {
+                xml.Append("<Lists>");
+                xml.Append(lists.ToXMLFragment());
+                xml.Append("</Lists>");
+            }
+            xml.Append("</ListSearchResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaList.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaList.cs
new file mode 100644
index 0000000..db97ade
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaList.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListmaniaList
+    {
+    
+        private String listIdField;
+
+        private String listNameField;
+
+
+        /// <summary>
+        /// Gets and sets the ListId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListId")]
+        public String ListId
+        {
+            get { return this.listIdField ; }
+            set { this.listIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListId property
+        /// </summary>
+        /// <param name="listId">ListId property</param>
+        /// <returns>this instance</returns>
+        public ListmaniaList WithListId(String listId)
+        {
+            this.listIdField = listId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListId property is set
+        /// </summary>
+        /// <returns>true if ListId property is set</returns>
+        public Boolean IsSetListId()
+        {
+            return  this.listIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListName")]
+        public String ListName
+        {
+            get { return this.listNameField ; }
+            set { this.listNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListName property
+        /// </summary>
+        /// <param name="listName">ListName property</param>
+        /// <returns>this instance</returns>
+        public ListmaniaList WithListName(String listName)
+        {
+            this.listNameField = listName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListName property is set
+        /// </summary>
+        /// <returns>true if ListName property is set</returns>
+        public Boolean IsSetListName()
+        {
+            return  this.listNameField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetListId()) {
+                xml.Append("<ListId>");
+                xml.Append(EscapeXML(this.ListId));
+                xml.Append("</ListId>");
+            }
+            if (IsSetListName()) {
+                xml.Append("<ListName>");
+                xml.Append(EscapeXML(this.ListName));
+                xml.Append("</ListName>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaLists.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaLists.cs
new file mode 100644
index 0000000..2a5918b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ListmaniaLists.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ListmaniaLists
+    {
+    
+        private  List<ListmaniaList> listmaniaListField;
+
+
+        /// <summary>
+        /// Gets and sets the ListmaniaList property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListmaniaList")]
+        public List<ListmaniaList> ListmaniaList
+        {
+            get
+            {
+                if (this.listmaniaListField == null)
+                {
+                    this.listmaniaListField = new List<ListmaniaList>();
+                }
+                return this.listmaniaListField;
+            }
+            set { this.listmaniaListField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListmaniaList property
+        /// </summary>
+        /// <param name="list">ListmaniaList property</param>
+        /// <returns>this instance</returns>
+        public ListmaniaLists WithListmaniaList(params ListmaniaList[] list)
+        {
+            foreach (ListmaniaList item in list)
+            {
+                ListmaniaList.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if ListmaniaList property is set
+        /// </summary>
+        /// <returns>true if ListmaniaList property is set</returns>
+        public Boolean IsSetListmaniaList()
+        {
+            return (ListmaniaList.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<ListmaniaList> listmaniaListList = this.ListmaniaList;
+            foreach (ListmaniaList listmaniaList in listmaniaListList) {
+                xml.Append("<ListmaniaList>");
+                xml.Append(listmaniaList.ToXMLFragment());
+                xml.Append("</ListmaniaList>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Lists.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Lists.cs
new file mode 100644
index 0000000..68b5276
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Lists.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Lists
+    {
+    
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  List<List> listField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public Lists WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public Lists WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the List property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "List")]
+        public List<List> List
+        {
+            get
+            {
+                if (this.listField == null)
+                {
+                    this.listField = new List<List>();
+                }
+                return this.listField;
+            }
+            set { this.listField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the List property
+        /// </summary>
+        /// <param name="list">List property</param>
+        /// <returns>this instance</returns>
+        public Lists WithList(params List[] list)
+        {
+            foreach (List item in list)
+            {
+                List.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if List property is set
+        /// </summary>
+        /// <returns>true if List property is set</returns>
+        public Boolean IsSetList()
+        {
+            return (List.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            List<List> listList = this.List;
+            foreach (List list in listList) {
+                xml.Append("<List>");
+                xml.Append(list.ToXMLFragment());
+                xml.Append("</List>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/LoyaltyPoints.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/LoyaltyPoints.cs
new file mode 100644
index 0000000..0397b59
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/LoyaltyPoints.cs
@@ -0,0 +1,177 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class LoyaltyPoints
+    {
+    
+        private Decimal? pointsField;
+
+        private  Price typicalRedemptionValueField;
+
+        /// <summary>
+        /// Gets and sets the Points property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Points")]
+        public Decimal Points
+        {
+            get { return this.pointsField.GetValueOrDefault() ; }
+            set { this.pointsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Points property
+        /// </summary>
+        /// <param name="points">Points property</param>
+        /// <returns>this instance</returns>
+        public LoyaltyPoints WithPoints(Decimal points)
+        {
+            this.pointsField = points;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Points property is set
+        /// </summary>
+        /// <returns>true if Points property is set</returns>
+        public Boolean IsSetPoints()
+        {
+            return  this.pointsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TypicalRedemptionValue property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TypicalRedemptionValue")]
+        public Price TypicalRedemptionValue
+        {
+            get { return this.typicalRedemptionValueField ; }
+            set { this.typicalRedemptionValueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TypicalRedemptionValue property
+        /// </summary>
+        /// <param name="typicalRedemptionValue">TypicalRedemptionValue property</param>
+        /// <returns>this instance</returns>
+        public LoyaltyPoints WithTypicalRedemptionValue(Price typicalRedemptionValue)
+        {
+            this.typicalRedemptionValueField = typicalRedemptionValue;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TypicalRedemptionValue property is set
+        /// </summary>
+        /// <returns>true if TypicalRedemptionValue property is set</returns>
+        public Boolean IsSetTypicalRedemptionValue()
+        {
+            return this.typicalRedemptionValueField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetPoints()) {
+                xml.Append("<Points>");
+                xml.Append(this.Points);
+                xml.Append("</Points>");
+            }
+            if (IsSetTypicalRedemptionValue()) {
+                Price  typicalRedemptionValue = this.TypicalRedemptionValue;
+                xml.Append("<TypicalRedemptionValue>");
+                xml.Append(typicalRedemptionValue.ToXMLFragment());
+                xml.Append("</TypicalRedemptionValue>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Merchant.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Merchant.cs
new file mode 100644
index 0000000..3be34b1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Merchant.cs
@@ -0,0 +1,348 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Merchant
+    {
+    
+        private String merchantIdField;
+
+        private String nameField;
+
+        private String glancePageField;
+
+        private Decimal? averageFeedbackRatingField;
+
+        private Decimal? totalFeedbackField;
+
+        private Decimal? totalFeedbackPagesField;
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GlancePage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GlancePage")]
+        public String GlancePage
+        {
+            get { return this.glancePageField ; }
+            set { this.glancePageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GlancePage property
+        /// </summary>
+        /// <param name="glancePage">GlancePage property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithGlancePage(String glancePage)
+        {
+            this.glancePageField = glancePage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GlancePage property is set
+        /// </summary>
+        /// <returns>true if GlancePage property is set</returns>
+        public Boolean IsSetGlancePage()
+        {
+            return  this.glancePageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AverageFeedbackRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AverageFeedbackRating")]
+        public Decimal AverageFeedbackRating
+        {
+            get { return this.averageFeedbackRatingField.GetValueOrDefault() ; }
+            set { this.averageFeedbackRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AverageFeedbackRating property
+        /// </summary>
+        /// <param name="averageFeedbackRating">AverageFeedbackRating property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithAverageFeedbackRating(Decimal averageFeedbackRating)
+        {
+            this.averageFeedbackRatingField = averageFeedbackRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AverageFeedbackRating property is set
+        /// </summary>
+        /// <returns>true if AverageFeedbackRating property is set</returns>
+        public Boolean IsSetAverageFeedbackRating()
+        {
+            return  this.averageFeedbackRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFeedback property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFeedback")]
+        public Decimal TotalFeedback
+        {
+            get { return this.totalFeedbackField.GetValueOrDefault() ; }
+            set { this.totalFeedbackField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFeedback property
+        /// </summary>
+        /// <param name="totalFeedback">TotalFeedback property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithTotalFeedback(Decimal totalFeedback)
+        {
+            this.totalFeedbackField = totalFeedback;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFeedback property is set
+        /// </summary>
+        /// <returns>true if TotalFeedback property is set</returns>
+        public Boolean IsSetTotalFeedback()
+        {
+            return  this.totalFeedbackField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFeedbackPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFeedbackPages")]
+        public Decimal TotalFeedbackPages
+        {
+            get { return this.totalFeedbackPagesField.GetValueOrDefault() ; }
+            set { this.totalFeedbackPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFeedbackPages property
+        /// </summary>
+        /// <param name="totalFeedbackPages">TotalFeedbackPages property</param>
+        /// <returns>this instance</returns>
+        public Merchant WithTotalFeedbackPages(Decimal totalFeedbackPages)
+        {
+            this.totalFeedbackPagesField = totalFeedbackPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFeedbackPages property is set
+        /// </summary>
+        /// <returns>true if TotalFeedbackPages property is set</returns>
+        public Boolean IsSetTotalFeedbackPages()
+        {
+            return  this.totalFeedbackPagesField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetGlancePage()) {
+                xml.Append("<GlancePage>");
+                xml.Append(EscapeXML(this.GlancePage));
+                xml.Append("</GlancePage>");
+            }
+            if (IsSetAverageFeedbackRating()) {
+                xml.Append("<AverageFeedbackRating>");
+                xml.Append(this.AverageFeedbackRating);
+                xml.Append("</AverageFeedbackRating>");
+            }
+            if (IsSetTotalFeedback()) {
+                xml.Append("<TotalFeedback>");
+                xml.Append(this.TotalFeedback);
+                xml.Append("</TotalFeedback>");
+            }
+            if (IsSetTotalFeedbackPages()) {
+                xml.Append("<TotalFeedbackPages>");
+                xml.Append(this.TotalFeedbackPages);
+                xml.Append("</TotalFeedbackPages>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MerchantItemAttributes.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MerchantItemAttributes.cs
new file mode 100644
index 0000000..57877cd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MerchantItemAttributes.cs
@@ -0,0 +1,10861 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class MerchantItemAttributes
+    {
+    
+        private List<String> actorField;
+
+        private  Address addressField;
+        private  DecimalWithUnits amazonMaximumAgeField;
+        private  DecimalWithUnits amazonMinimumAgeField;
+        private String apertureModesField;
+
+        private List<String> artistField;
+
+        private String aspectRatioField;
+
+        private String assemblyInstructionsField;
+
+        private String assemblyRequiredField;
+
+        private String audienceRatingField;
+
+        private List<String> audioFormatField;
+
+        private List<String> authorField;
+
+        private String backFindingField;
+
+        private String bandMaterialTypeField;
+
+        private String batteriesIncludedField;
+
+        private String batteriesRequiredField;
+
+        private  NonNegativeIntegerWithUnits batteriesField;
+        private String batteryDescriptionField;
+
+        private String batteryTypeField;
+
+        private String bezelMaterialTypeField;
+
+        private String bindingField;
+
+        private String brandField;
+
+        private String calendarTypeField;
+
+        private List<String> cameraManualFeaturesField;
+
+        private  DecimalWithUnits caseDiameterField;
+        private String caseMaterialTypeField;
+
+        private  DecimalWithUnits caseThicknessField;
+        private String caseTypeField;
+
+        private String catalogNumberField;
+
+        private String CDRWDescriptionField;
+
+        private String chainTypeField;
+
+        private String claspTypeField;
+
+        private String clothingSizeField;
+
+        private String colorField;
+
+        private String compatibilityField;
+
+        private String computerHardwareTypeField;
+
+        private String computerPlatformField;
+
+        private String connectivityField;
+
+        private  DecimalWithUnits continuousShootingSpeedField;
+        private String countryField;
+
+        private String countryOfOriginField;
+
+        private String CPUManufacturerField;
+
+        private  DecimalWithUnits CPUSpeedField;
+        private String CPUTypeField;
+
+        private  List<Creator> creatorField;
+
+        private String cuisineField;
+
+        private String customizableField;
+
+        private  DecimalWithUnits delayBetweenShotsField;
+        private String deliveryOptionField;
+
+        private String departmentField;
+
+        private String descriptionField;
+
+        private String deweyDecimalNumberField;
+
+        private String dialColorField;
+
+        private String dialWindowMaterialTypeField;
+
+        private  DecimalWithUnits digitalZoomField;
+        private List<String> directorField;
+
+        private  DecimalWithUnits displaySizeField;
+        private Decimal? drumSetPieceQuantityField;
+
+        private Decimal? DVDLayersField;
+
+        private String DVDRWDescriptionField;
+
+        private Decimal? DVDSidesField;
+
+        private String DPCIField;
+
+        private String EANField;
+
+        private String editionField;
+
+        private String ESRBAgeRatingField;
+
+        private String externalDisplaySupportDescriptionField;
+
+        private String fabricTypeField;
+
+        private String faxNumberField;
+
+        private List<String> featureField;
+
+        private  StringWithUnits firstIssueLeadTimeField;
+        private String floppyDiskDriveDescriptionField;
+
+        private List<String> formatField;
+
+        private  Price fixedShippingChargeField;
+        private String gemTypeField;
+
+        private String graphicsCardInterfaceField;
+
+        private String graphicsDescriptionField;
+
+        private  DecimalWithUnits graphicsMemorySizeField;
+        private String guitarAttributeField;
+
+        private String guitarBridgeSystemField;
+
+        private String guitarPickThicknessField;
+
+        private String guitarPickupConfigurationField;
+
+        private Decimal? hardDiskCountField;
+
+        private  NonNegativeIntegerWithUnits hardDiskSizeField;
+        private Boolean? hasAutoFocusField;
+
+        private Boolean? hasBurstModeField;
+
+        private Boolean? hasInCameraEditingField;
+
+        private Boolean? hasRedEyeReductionField;
+
+        private Boolean? hasSelfTimerField;
+
+        private Boolean? hasTripodMountField;
+
+        private Boolean? hasVideoOutField;
+
+        private Boolean? hasViewfinderField;
+
+        private String hazardousMaterialTypeField;
+
+        private String hoursOfOperationField;
+
+        private String includedSoftwareField;
+
+        private Boolean? includesMp3PlayerField;
+
+        private String indicationsField;
+
+        private String ingredientsField;
+
+        private String instrumentKeyField;
+
+        private Boolean? isAutographedField;
+
+        private String ISBNField;
+
+        private Boolean? isFragileField;
+
+        private Boolean? isLabCreatedField;
+
+        private Boolean? isMemorabiliaField;
+
+        private  NonNegativeIntegerWithUnits ISOEquivalentField;
+        private String issuesPerYearField;
+
+        private  ItemDimensions itemDimensionsField;
+        private String keyboardDescriptionField;
+
+        private String labelField;
+
+        private  Languages languagesField;
+        private String legalDisclaimerField;
+
+        private String lineVoltageField;
+
+        private  Price listPriceField;
+        private String macroFocusRangeField;
+
+        private String magazineTypeField;
+
+        private String malletHardnessField;
+
+        private String manufacturerField;
+
+        private String manufacturerLaborWarrantyDescriptionField;
+
+        private  DecimalWithUnits manufacturerMaximumAgeField;
+        private  DecimalWithUnits manufacturerMinimumAgeField;
+        private String manufacturerPartsWarrantyDescriptionField;
+
+        private String materialTypeField;
+
+        private  DecimalWithUnits maximumApertureField;
+        private String maximumColorDepthField;
+
+        private  DecimalWithUnits maximumFocalLengthField;
+        private  NonNegativeIntegerWithUnits maximumHighResolutionImagesField;
+        private  NonNegativeIntegerWithUnits maximumHorizontalResolutionField;
+        private String maximumLowResolutionImagesField;
+
+        private  DecimalWithUnits maximumResolutionField;
+        private  DecimalWithUnits maximumShutterSpeedField;
+        private  NonNegativeIntegerWithUnits maximumVerticalResolutionField;
+        private  DecimalWithUnits maximumWeightRecommendationField;
+        private Decimal? memorySlotsAvailableField;
+
+        private String metalStampField;
+
+        private String metalTypeField;
+
+        private String miniMovieDescriptionField;
+
+        private  DecimalWithUnits minimumFocalLengthField;
+        private  DecimalWithUnits minimumShutterSpeedField;
+        private String modelField;
+
+        private Decimal? modelYearField;
+
+        private String modemDescriptionField;
+
+        private  DecimalWithUnits monitorSizeField;
+        private  DecimalWithUnits monitorViewableDiagonalSizeField;
+        private String mouseDescriptionField;
+
+        private String MPNField;
+
+        private String musicalStyleField;
+
+        private String nativeResolutionField;
+
+        private String neighborhoodField;
+
+        private String networkInterfaceDescriptionField;
+
+        private String notebookDisplayTechnologyField;
+
+        private String notebookPointingDeviceDescriptionField;
+
+        private Decimal? numberOfDiscsField;
+
+        private Decimal? numberOfIssuesField;
+
+        private Decimal? numberOfItemsField;
+
+        private Decimal? numberOfKeysField;
+
+        private Decimal? numberOfPagesField;
+
+        private Decimal? numberOfPearlsField;
+
+        private Decimal? numberOfRapidFireShotsField;
+
+        private Decimal? numberOfStonesField;
+
+        private Decimal? numberOfStringsField;
+
+        private Decimal? numberOfTracksField;
+
+        private  DecimalWithUnits opticalZoomField;
+        private String originalReleaseDateField;
+
+        private Decimal? outputWattageField;
+
+        private  PackageDimensions packageDimensionsField;
+        private String pearlLustreField;
+
+        private String pearlMinimumColorField;
+
+        private String pearlShapeField;
+
+        private String pearlStringingMethodField;
+
+        private String pearlSurfaceBlemishesField;
+
+        private String pearlTypeField;
+
+        private String pearlUniformityField;
+
+        private String phoneNumberField;
+
+        private List<String> photoFlashTypeField;
+
+        private List<String> pictureFormatField;
+
+        private List<String> platformField;
+
+        private Decimal? priceRatingField;
+
+        private Decimal? processorCountField;
+
+        private String productGroupField;
+
+        private String promotionalTagField;
+
+        private String POBoxShippingExcludedField;
+
+        private String publicationDateField;
+
+        private String publisherField;
+
+        private List<String> purchasingChannelField;
+
+        private String readingLevelField;
+
+        private Decimal? recorderTrackCountField;
+
+        private String regionCodeField;
+
+        private String regionOfOriginField;
+
+        private String releaseDateField;
+
+        private List<String> returnMethodField;
+
+        private String removableMemoryField;
+
+        private String resolutionModesField;
+
+        private String returnPolicyField;
+
+        private String ringSizeField;
+
+        private String safetyWarningField;
+
+        private String salesRestrictionField;
+
+        private  NonNegativeIntegerWithUnits secondaryCacheSizeField;
+        private String settingTypeField;
+
+        private String sizeField;
+
+        private String SKUField;
+
+        private String soldInStoresField;
+
+        private String sizePerPearlField;
+
+        private String skillLevelField;
+
+        private String soundCardDescriptionField;
+
+        private Decimal? speakerCountField;
+
+        private String speakerDescriptionField;
+
+        private List<String> specialFeaturesField;
+
+        private String stoneClarityField;
+
+        private String stoneColorField;
+
+        private String stoneCutField;
+
+        private String stoneShapeField;
+
+        private  DecimalWithUnits stoneWeightField;
+        private String studioField;
+
+        private  NonNegativeIntegerWithUnits subscriptionLengthField;
+        private List<String> supportedImageTypeField;
+
+        private  DecimalWithUnits systemBusSpeedField;
+        private  DecimalWithUnits systemMemorySizeMaxField;
+        private  DecimalWithUnits systemMemorySizeField;
+        private String systemMemoryTypeField;
+
+        private String tellingPageIndicatorField;
+
+        private String theatricalReleaseDateField;
+
+        private String titleField;
+
+        private  DecimalWithUnits totalDiamondWeightField;
+        private Decimal? totalExternalBaysFreeField;
+
+        private Decimal? totalFirewirePortsField;
+
+        private  DecimalWithUnits totalGemWeightField;
+        private Decimal? totalInternalBaysFreeField;
+
+        private  DecimalWithUnits totalMetalWeightField;
+        private Decimal? totalNTSCPALPortsField;
+
+        private Decimal? totalParallelPortsField;
+
+        private Decimal? totalPCCardSlotsField;
+
+        private Decimal? totalPCISlotsFreeField;
+
+        private Decimal? totalSerialPortsField;
+
+        private Decimal? totalSVideoOutPortsField;
+
+        private Decimal? totalUSB2PortsField;
+
+        private Decimal? totalUSBPortsField;
+
+        private Decimal? totalVGAOutPortsField;
+
+        private String UPCField;
+
+        private String variationDenominationField;
+
+        private String variationDescriptionField;
+
+        private  VendorRebate vendorRebateField;
+        private String warrantyField;
+
+        private String watchMovementTypeField;
+
+        private String websiteBuyabilityField;
+
+        private  DecimalWithUnits waterResistanceDepthField;
+        private Decimal? wirelessMicrophoneFrequencyField;
+
+
+        /// <summary>
+        /// Gets and sets the Actor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Actor")]
+        public List<String> Actor
+        {
+            get
+            {
+                if (this.actorField == null)
+                {
+                    this.actorField = new List<String>();
+                }
+                return this.actorField;
+            }
+            set { this.actorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Actor property
+        /// </summary>
+        /// <param name="list">Actor property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithActor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Actor.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Actor property is set
+        /// </summary>
+        /// <returns>true if Actor property is set</returns>
+        public Boolean IsSetActor()
+        {
+            return (Actor.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Address property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Address")]
+        public Address Address
+        {
+            get { return this.addressField ; }
+            set { this.addressField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Address property
+        /// </summary>
+        /// <param name="address">Address property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAddress(Address address)
+        {
+            this.addressField = address;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Address property is set
+        /// </summary>
+        /// <returns>true if Address property is set</returns>
+        public Boolean IsSetAddress()
+        {
+            return this.addressField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AmazonMaximumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AmazonMaximumAge")]
+        public DecimalWithUnits AmazonMaximumAge
+        {
+            get { return this.amazonMaximumAgeField ; }
+            set { this.amazonMaximumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AmazonMaximumAge property
+        /// </summary>
+        /// <param name="amazonMaximumAge">AmazonMaximumAge property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAmazonMaximumAge(DecimalWithUnits amazonMaximumAge)
+        {
+            this.amazonMaximumAgeField = amazonMaximumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AmazonMaximumAge property is set
+        /// </summary>
+        /// <returns>true if AmazonMaximumAge property is set</returns>
+        public Boolean IsSetAmazonMaximumAge()
+        {
+            return this.amazonMaximumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AmazonMinimumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AmazonMinimumAge")]
+        public DecimalWithUnits AmazonMinimumAge
+        {
+            get { return this.amazonMinimumAgeField ; }
+            set { this.amazonMinimumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AmazonMinimumAge property
+        /// </summary>
+        /// <param name="amazonMinimumAge">AmazonMinimumAge property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAmazonMinimumAge(DecimalWithUnits amazonMinimumAge)
+        {
+            this.amazonMinimumAgeField = amazonMinimumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AmazonMinimumAge property is set
+        /// </summary>
+        /// <returns>true if AmazonMinimumAge property is set</returns>
+        public Boolean IsSetAmazonMinimumAge()
+        {
+            return this.amazonMinimumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ApertureModes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ApertureModes")]
+        public String ApertureModes
+        {
+            get { return this.apertureModesField ; }
+            set { this.apertureModesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ApertureModes property
+        /// </summary>
+        /// <param name="apertureModes">ApertureModes property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithApertureModes(String apertureModes)
+        {
+            this.apertureModesField = apertureModes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ApertureModes property is set
+        /// </summary>
+        /// <returns>true if ApertureModes property is set</returns>
+        public Boolean IsSetApertureModes()
+        {
+            return  this.apertureModesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Artist property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Artist")]
+        public List<String> Artist
+        {
+            get
+            {
+                if (this.artistField == null)
+                {
+                    this.artistField = new List<String>();
+                }
+                return this.artistField;
+            }
+            set { this.artistField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Artist property
+        /// </summary>
+        /// <param name="list">Artist property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithArtist(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Artist.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Artist property is set
+        /// </summary>
+        /// <returns>true if Artist property is set</returns>
+        public Boolean IsSetArtist()
+        {
+            return (Artist.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AspectRatio property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AspectRatio")]
+        public String AspectRatio
+        {
+            get { return this.aspectRatioField ; }
+            set { this.aspectRatioField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AspectRatio property
+        /// </summary>
+        /// <param name="aspectRatio">AspectRatio property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAspectRatio(String aspectRatio)
+        {
+            this.aspectRatioField = aspectRatio;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AspectRatio property is set
+        /// </summary>
+        /// <returns>true if AspectRatio property is set</returns>
+        public Boolean IsSetAspectRatio()
+        {
+            return  this.aspectRatioField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssemblyInstructions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssemblyInstructions")]
+        public String AssemblyInstructions
+        {
+            get { return this.assemblyInstructionsField ; }
+            set { this.assemblyInstructionsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssemblyInstructions property
+        /// </summary>
+        /// <param name="assemblyInstructions">AssemblyInstructions property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAssemblyInstructions(String assemblyInstructions)
+        {
+            this.assemblyInstructionsField = assemblyInstructions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssemblyInstructions property is set
+        /// </summary>
+        /// <returns>true if AssemblyInstructions property is set</returns>
+        public Boolean IsSetAssemblyInstructions()
+        {
+            return  this.assemblyInstructionsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AssemblyRequired property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AssemblyRequired")]
+        public String AssemblyRequired
+        {
+            get { return this.assemblyRequiredField ; }
+            set { this.assemblyRequiredField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AssemblyRequired property
+        /// </summary>
+        /// <param name="assemblyRequired">AssemblyRequired property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAssemblyRequired(String assemblyRequired)
+        {
+            this.assemblyRequiredField = assemblyRequired;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AssemblyRequired property is set
+        /// </summary>
+        /// <returns>true if AssemblyRequired property is set</returns>
+        public Boolean IsSetAssemblyRequired()
+        {
+            return  this.assemblyRequiredField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudienceRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudienceRating")]
+        public String AudienceRating
+        {
+            get { return this.audienceRatingField ; }
+            set { this.audienceRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudienceRating property
+        /// </summary>
+        /// <param name="audienceRating">AudienceRating property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAudienceRating(String audienceRating)
+        {
+            this.audienceRatingField = audienceRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AudienceRating property is set
+        /// </summary>
+        /// <returns>true if AudienceRating property is set</returns>
+        public Boolean IsSetAudienceRating()
+        {
+            return  this.audienceRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AudioFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AudioFormat")]
+        public List<String> AudioFormat
+        {
+            get
+            {
+                if (this.audioFormatField == null)
+                {
+                    this.audioFormatField = new List<String>();
+                }
+                return this.audioFormatField;
+            }
+            set { this.audioFormatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AudioFormat property
+        /// </summary>
+        /// <param name="list">AudioFormat property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAudioFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                AudioFormat.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of AudioFormat property is set
+        /// </summary>
+        /// <returns>true if AudioFormat property is set</returns>
+        public Boolean IsSetAudioFormat()
+        {
+            return (AudioFormat.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Author property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Author")]
+        public List<String> Author
+        {
+            get
+            {
+                if (this.authorField == null)
+                {
+                    this.authorField = new List<String>();
+                }
+                return this.authorField;
+            }
+            set { this.authorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Author property
+        /// </summary>
+        /// <param name="list">Author property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithAuthor(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Author.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Author property is set
+        /// </summary>
+        /// <returns>true if Author property is set</returns>
+        public Boolean IsSetAuthor()
+        {
+            return (Author.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BackFinding property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BackFinding")]
+        public String BackFinding
+        {
+            get { return this.backFindingField ; }
+            set { this.backFindingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BackFinding property
+        /// </summary>
+        /// <param name="backFinding">BackFinding property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBackFinding(String backFinding)
+        {
+            this.backFindingField = backFinding;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BackFinding property is set
+        /// </summary>
+        /// <returns>true if BackFinding property is set</returns>
+        public Boolean IsSetBackFinding()
+        {
+            return  this.backFindingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BandMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BandMaterialType")]
+        public String BandMaterialType
+        {
+            get { return this.bandMaterialTypeField ; }
+            set { this.bandMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BandMaterialType property
+        /// </summary>
+        /// <param name="bandMaterialType">BandMaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBandMaterialType(String bandMaterialType)
+        {
+            this.bandMaterialTypeField = bandMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BandMaterialType property is set
+        /// </summary>
+        /// <returns>true if BandMaterialType property is set</returns>
+        public Boolean IsSetBandMaterialType()
+        {
+            return  this.bandMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteriesIncluded property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteriesIncluded")]
+        public String BatteriesIncluded
+        {
+            get { return this.batteriesIncludedField ; }
+            set { this.batteriesIncludedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteriesIncluded property
+        /// </summary>
+        /// <param name="batteriesIncluded">BatteriesIncluded property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBatteriesIncluded(String batteriesIncluded)
+        {
+            this.batteriesIncludedField = batteriesIncluded;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteriesIncluded property is set
+        /// </summary>
+        /// <returns>true if BatteriesIncluded property is set</returns>
+        public Boolean IsSetBatteriesIncluded()
+        {
+            return  this.batteriesIncludedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteriesRequired property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteriesRequired")]
+        public String BatteriesRequired
+        {
+            get { return this.batteriesRequiredField ; }
+            set { this.batteriesRequiredField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteriesRequired property
+        /// </summary>
+        /// <param name="batteriesRequired">BatteriesRequired property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBatteriesRequired(String batteriesRequired)
+        {
+            this.batteriesRequiredField = batteriesRequired;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteriesRequired property is set
+        /// </summary>
+        /// <returns>true if BatteriesRequired property is set</returns>
+        public Boolean IsSetBatteriesRequired()
+        {
+            return  this.batteriesRequiredField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Batteries property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Batteries")]
+        public NonNegativeIntegerWithUnits Batteries
+        {
+            get { return this.batteriesField ; }
+            set { this.batteriesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Batteries property
+        /// </summary>
+        /// <param name="batteries">Batteries property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBatteries(NonNegativeIntegerWithUnits batteries)
+        {
+            this.batteriesField = batteries;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Batteries property is set
+        /// </summary>
+        /// <returns>true if Batteries property is set</returns>
+        public Boolean IsSetBatteries()
+        {
+            return this.batteriesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the BatteryDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteryDescription")]
+        public String BatteryDescription
+        {
+            get { return this.batteryDescriptionField ; }
+            set { this.batteryDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteryDescription property
+        /// </summary>
+        /// <param name="batteryDescription">BatteryDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBatteryDescription(String batteryDescription)
+        {
+            this.batteryDescriptionField = batteryDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteryDescription property is set
+        /// </summary>
+        /// <returns>true if BatteryDescription property is set</returns>
+        public Boolean IsSetBatteryDescription()
+        {
+            return  this.batteryDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BatteryType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BatteryType")]
+        public String BatteryType
+        {
+            get { return this.batteryTypeField ; }
+            set { this.batteryTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BatteryType property
+        /// </summary>
+        /// <param name="batteryType">BatteryType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBatteryType(String batteryType)
+        {
+            this.batteryTypeField = batteryType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BatteryType property is set
+        /// </summary>
+        /// <returns>true if BatteryType property is set</returns>
+        public Boolean IsSetBatteryType()
+        {
+            return  this.batteryTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BezelMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BezelMaterialType")]
+        public String BezelMaterialType
+        {
+            get { return this.bezelMaterialTypeField ; }
+            set { this.bezelMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BezelMaterialType property
+        /// </summary>
+        /// <param name="bezelMaterialType">BezelMaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBezelMaterialType(String bezelMaterialType)
+        {
+            this.bezelMaterialTypeField = bezelMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BezelMaterialType property is set
+        /// </summary>
+        /// <returns>true if BezelMaterialType property is set</returns>
+        public Boolean IsSetBezelMaterialType()
+        {
+            return  this.bezelMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Binding property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Binding")]
+        public String Binding
+        {
+            get { return this.bindingField ; }
+            set { this.bindingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Binding property
+        /// </summary>
+        /// <param name="binding">Binding property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBinding(String binding)
+        {
+            this.bindingField = binding;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Binding property is set
+        /// </summary>
+        /// <returns>true if Binding property is set</returns>
+        public Boolean IsSetBinding()
+        {
+            return  this.bindingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Brand property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Brand")]
+        public String Brand
+        {
+            get { return this.brandField ; }
+            set { this.brandField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Brand property
+        /// </summary>
+        /// <param name="brand">Brand property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithBrand(String brand)
+        {
+            this.brandField = brand;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Brand property is set
+        /// </summary>
+        /// <returns>true if Brand property is set</returns>
+        public Boolean IsSetBrand()
+        {
+            return  this.brandField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CalendarType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CalendarType")]
+        public String CalendarType
+        {
+            get { return this.calendarTypeField ; }
+            set { this.calendarTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CalendarType property
+        /// </summary>
+        /// <param name="calendarType">CalendarType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCalendarType(String calendarType)
+        {
+            this.calendarTypeField = calendarType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CalendarType property is set
+        /// </summary>
+        /// <returns>true if CalendarType property is set</returns>
+        public Boolean IsSetCalendarType()
+        {
+            return  this.calendarTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CameraManualFeatures property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CameraManualFeatures")]
+        public List<String> CameraManualFeatures
+        {
+            get
+            {
+                if (this.cameraManualFeaturesField == null)
+                {
+                    this.cameraManualFeaturesField = new List<String>();
+                }
+                return this.cameraManualFeaturesField;
+            }
+            set { this.cameraManualFeaturesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CameraManualFeatures property
+        /// </summary>
+        /// <param name="list">CameraManualFeatures property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCameraManualFeatures(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                CameraManualFeatures.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of CameraManualFeatures property is set
+        /// </summary>
+        /// <returns>true if CameraManualFeatures property is set</returns>
+        public Boolean IsSetCameraManualFeatures()
+        {
+            return (CameraManualFeatures.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseDiameter property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseDiameter")]
+        public DecimalWithUnits CaseDiameter
+        {
+            get { return this.caseDiameterField ; }
+            set { this.caseDiameterField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseDiameter property
+        /// </summary>
+        /// <param name="caseDiameter">CaseDiameter property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCaseDiameter(DecimalWithUnits caseDiameter)
+        {
+            this.caseDiameterField = caseDiameter;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseDiameter property is set
+        /// </summary>
+        /// <returns>true if CaseDiameter property is set</returns>
+        public Boolean IsSetCaseDiameter()
+        {
+            return this.caseDiameterField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseMaterialType")]
+        public String CaseMaterialType
+        {
+            get { return this.caseMaterialTypeField ; }
+            set { this.caseMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseMaterialType property
+        /// </summary>
+        /// <param name="caseMaterialType">CaseMaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCaseMaterialType(String caseMaterialType)
+        {
+            this.caseMaterialTypeField = caseMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseMaterialType property is set
+        /// </summary>
+        /// <returns>true if CaseMaterialType property is set</returns>
+        public Boolean IsSetCaseMaterialType()
+        {
+            return  this.caseMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CaseThickness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseThickness")]
+        public DecimalWithUnits CaseThickness
+        {
+            get { return this.caseThicknessField ; }
+            set { this.caseThicknessField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseThickness property
+        /// </summary>
+        /// <param name="caseThickness">CaseThickness property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCaseThickness(DecimalWithUnits caseThickness)
+        {
+            this.caseThicknessField = caseThickness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseThickness property is set
+        /// </summary>
+        /// <returns>true if CaseThickness property is set</returns>
+        public Boolean IsSetCaseThickness()
+        {
+            return this.caseThicknessField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CaseType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CaseType")]
+        public String CaseType
+        {
+            get { return this.caseTypeField ; }
+            set { this.caseTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CaseType property
+        /// </summary>
+        /// <param name="caseType">CaseType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCaseType(String caseType)
+        {
+            this.caseTypeField = caseType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CaseType property is set
+        /// </summary>
+        /// <returns>true if CaseType property is set</returns>
+        public Boolean IsSetCaseType()
+        {
+            return  this.caseTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CatalogNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CatalogNumber")]
+        public String CatalogNumber
+        {
+            get { return this.catalogNumberField ; }
+            set { this.catalogNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CatalogNumber property
+        /// </summary>
+        /// <param name="catalogNumber">CatalogNumber property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCatalogNumber(String catalogNumber)
+        {
+            this.catalogNumberField = catalogNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CatalogNumber property is set
+        /// </summary>
+        /// <returns>true if CatalogNumber property is set</returns>
+        public Boolean IsSetCatalogNumber()
+        {
+            return  this.catalogNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CDRWDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CDRWDescription")]
+        public String CDRWDescription
+        {
+            get { return this.CDRWDescriptionField ; }
+            set { this.CDRWDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CDRWDescription property
+        /// </summary>
+        /// <param name="CDRWDescription">CDRWDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCDRWDescription(String CDRWDescription)
+        {
+            this.CDRWDescriptionField = CDRWDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CDRWDescription property is set
+        /// </summary>
+        /// <returns>true if CDRWDescription property is set</returns>
+        public Boolean IsSetCDRWDescription()
+        {
+            return  this.CDRWDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ChainType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ChainType")]
+        public String ChainType
+        {
+            get { return this.chainTypeField ; }
+            set { this.chainTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ChainType property
+        /// </summary>
+        /// <param name="chainType">ChainType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithChainType(String chainType)
+        {
+            this.chainTypeField = chainType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ChainType property is set
+        /// </summary>
+        /// <returns>true if ChainType property is set</returns>
+        public Boolean IsSetChainType()
+        {
+            return  this.chainTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ClaspType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ClaspType")]
+        public String ClaspType
+        {
+            get { return this.claspTypeField ; }
+            set { this.claspTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ClaspType property
+        /// </summary>
+        /// <param name="claspType">ClaspType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithClaspType(String claspType)
+        {
+            this.claspTypeField = claspType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ClaspType property is set
+        /// </summary>
+        /// <returns>true if ClaspType property is set</returns>
+        public Boolean IsSetClaspType()
+        {
+            return  this.claspTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ClothingSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ClothingSize")]
+        public String ClothingSize
+        {
+            get { return this.clothingSizeField ; }
+            set { this.clothingSizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ClothingSize property
+        /// </summary>
+        /// <param name="clothingSize">ClothingSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithClothingSize(String clothingSize)
+        {
+            this.clothingSizeField = clothingSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ClothingSize property is set
+        /// </summary>
+        /// <returns>true if ClothingSize property is set</returns>
+        public Boolean IsSetClothingSize()
+        {
+            return  this.clothingSizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Color property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Color")]
+        public String Color
+        {
+            get { return this.colorField ; }
+            set { this.colorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Color property
+        /// </summary>
+        /// <param name="color">Color property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithColor(String color)
+        {
+            this.colorField = color;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Color property is set
+        /// </summary>
+        /// <returns>true if Color property is set</returns>
+        public Boolean IsSetColor()
+        {
+            return  this.colorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Compatibility property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Compatibility")]
+        public String Compatibility
+        {
+            get { return this.compatibilityField ; }
+            set { this.compatibilityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Compatibility property
+        /// </summary>
+        /// <param name="compatibility">Compatibility property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCompatibility(String compatibility)
+        {
+            this.compatibilityField = compatibility;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Compatibility property is set
+        /// </summary>
+        /// <returns>true if Compatibility property is set</returns>
+        public Boolean IsSetCompatibility()
+        {
+            return  this.compatibilityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ComputerHardwareType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ComputerHardwareType")]
+        public String ComputerHardwareType
+        {
+            get { return this.computerHardwareTypeField ; }
+            set { this.computerHardwareTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ComputerHardwareType property
+        /// </summary>
+        /// <param name="computerHardwareType">ComputerHardwareType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithComputerHardwareType(String computerHardwareType)
+        {
+            this.computerHardwareTypeField = computerHardwareType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ComputerHardwareType property is set
+        /// </summary>
+        /// <returns>true if ComputerHardwareType property is set</returns>
+        public Boolean IsSetComputerHardwareType()
+        {
+            return  this.computerHardwareTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ComputerPlatform property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ComputerPlatform")]
+        public String ComputerPlatform
+        {
+            get { return this.computerPlatformField ; }
+            set { this.computerPlatformField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ComputerPlatform property
+        /// </summary>
+        /// <param name="computerPlatform">ComputerPlatform property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithComputerPlatform(String computerPlatform)
+        {
+            this.computerPlatformField = computerPlatform;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ComputerPlatform property is set
+        /// </summary>
+        /// <returns>true if ComputerPlatform property is set</returns>
+        public Boolean IsSetComputerPlatform()
+        {
+            return  this.computerPlatformField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Connectivity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Connectivity")]
+        public String Connectivity
+        {
+            get { return this.connectivityField ; }
+            set { this.connectivityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Connectivity property
+        /// </summary>
+        /// <param name="connectivity">Connectivity property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithConnectivity(String connectivity)
+        {
+            this.connectivityField = connectivity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Connectivity property is set
+        /// </summary>
+        /// <returns>true if Connectivity property is set</returns>
+        public Boolean IsSetConnectivity()
+        {
+            return  this.connectivityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ContinuousShootingSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ContinuousShootingSpeed")]
+        public DecimalWithUnits ContinuousShootingSpeed
+        {
+            get { return this.continuousShootingSpeedField ; }
+            set { this.continuousShootingSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ContinuousShootingSpeed property
+        /// </summary>
+        /// <param name="continuousShootingSpeed">ContinuousShootingSpeed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithContinuousShootingSpeed(DecimalWithUnits continuousShootingSpeed)
+        {
+            this.continuousShootingSpeedField = continuousShootingSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ContinuousShootingSpeed property is set
+        /// </summary>
+        /// <returns>true if ContinuousShootingSpeed property is set</returns>
+        public Boolean IsSetContinuousShootingSpeed()
+        {
+            return this.continuousShootingSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Country property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Country")]
+        public String Country
+        {
+            get { return this.countryField ; }
+            set { this.countryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Country property
+        /// </summary>
+        /// <param name="country">Country property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCountry(String country)
+        {
+            this.countryField = country;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Country property is set
+        /// </summary>
+        /// <returns>true if Country property is set</returns>
+        public Boolean IsSetCountry()
+        {
+            return  this.countryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CountryOfOrigin property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CountryOfOrigin")]
+        public String CountryOfOrigin
+        {
+            get { return this.countryOfOriginField ; }
+            set { this.countryOfOriginField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CountryOfOrigin property
+        /// </summary>
+        /// <param name="countryOfOrigin">CountryOfOrigin property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCountryOfOrigin(String countryOfOrigin)
+        {
+            this.countryOfOriginField = countryOfOrigin;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CountryOfOrigin property is set
+        /// </summary>
+        /// <returns>true if CountryOfOrigin property is set</returns>
+        public Boolean IsSetCountryOfOrigin()
+        {
+            return  this.countryOfOriginField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CPUManufacturer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUManufacturer")]
+        public String CPUManufacturer
+        {
+            get { return this.CPUManufacturerField ; }
+            set { this.CPUManufacturerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUManufacturer property
+        /// </summary>
+        /// <param name="CPUManufacturer">CPUManufacturer property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCPUManufacturer(String CPUManufacturer)
+        {
+            this.CPUManufacturerField = CPUManufacturer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUManufacturer property is set
+        /// </summary>
+        /// <returns>true if CPUManufacturer property is set</returns>
+        public Boolean IsSetCPUManufacturer()
+        {
+            return  this.CPUManufacturerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CPUSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUSpeed")]
+        public DecimalWithUnits CPUSpeed
+        {
+            get { return this.CPUSpeedField ; }
+            set { this.CPUSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUSpeed property
+        /// </summary>
+        /// <param name="CPUSpeed">CPUSpeed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCPUSpeed(DecimalWithUnits CPUSpeed)
+        {
+            this.CPUSpeedField = CPUSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUSpeed property is set
+        /// </summary>
+        /// <returns>true if CPUSpeed property is set</returns>
+        public Boolean IsSetCPUSpeed()
+        {
+            return this.CPUSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CPUType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CPUType")]
+        public String CPUType
+        {
+            get { return this.CPUTypeField ; }
+            set { this.CPUTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CPUType property
+        /// </summary>
+        /// <param name="CPUType">CPUType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCPUType(String CPUType)
+        {
+            this.CPUTypeField = CPUType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CPUType property is set
+        /// </summary>
+        /// <returns>true if CPUType property is set</returns>
+        public Boolean IsSetCPUType()
+        {
+            return  this.CPUTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Creator property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Creator")]
+        public List<Creator> Creator
+        {
+            get
+            {
+                if (this.creatorField == null)
+                {
+                    this.creatorField = new List<Creator>();
+                }
+                return this.creatorField;
+            }
+            set { this.creatorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Creator property
+        /// </summary>
+        /// <param name="list">Creator property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCreator(params Creator[] list)
+        {
+            foreach (Creator item in list)
+            {
+                Creator.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Creator property is set
+        /// </summary>
+        /// <returns>true if Creator property is set</returns>
+        public Boolean IsSetCreator()
+        {
+            return (Creator.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Cuisine property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Cuisine")]
+        public String Cuisine
+        {
+            get { return this.cuisineField ; }
+            set { this.cuisineField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Cuisine property
+        /// </summary>
+        /// <param name="cuisine">Cuisine property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCuisine(String cuisine)
+        {
+            this.cuisineField = cuisine;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Cuisine property is set
+        /// </summary>
+        /// <returns>true if Cuisine property is set</returns>
+        public Boolean IsSetCuisine()
+        {
+            return  this.cuisineField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Customizable property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Customizable")]
+        public String Customizable
+        {
+            get { return this.customizableField ; }
+            set { this.customizableField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Customizable property
+        /// </summary>
+        /// <param name="customizable">Customizable property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithCustomizable(String customizable)
+        {
+            this.customizableField = customizable;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Customizable property is set
+        /// </summary>
+        /// <returns>true if Customizable property is set</returns>
+        public Boolean IsSetCustomizable()
+        {
+            return  this.customizableField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DelayBetweenShots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DelayBetweenShots")]
+        public DecimalWithUnits DelayBetweenShots
+        {
+            get { return this.delayBetweenShotsField ; }
+            set { this.delayBetweenShotsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DelayBetweenShots property
+        /// </summary>
+        /// <param name="delayBetweenShots">DelayBetweenShots property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDelayBetweenShots(DecimalWithUnits delayBetweenShots)
+        {
+            this.delayBetweenShotsField = delayBetweenShots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DelayBetweenShots property is set
+        /// </summary>
+        /// <returns>true if DelayBetweenShots property is set</returns>
+        public Boolean IsSetDelayBetweenShots()
+        {
+            return this.delayBetweenShotsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryOption property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryOption")]
+        public String DeliveryOption
+        {
+            get { return this.deliveryOptionField ; }
+            set { this.deliveryOptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryOption property
+        /// </summary>
+        /// <param name="deliveryOption">DeliveryOption property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDeliveryOption(String deliveryOption)
+        {
+            this.deliveryOptionField = deliveryOption;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryOption property is set
+        /// </summary>
+        /// <returns>true if DeliveryOption property is set</returns>
+        public Boolean IsSetDeliveryOption()
+        {
+            return  this.deliveryOptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Department property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Department")]
+        public String Department
+        {
+            get { return this.departmentField ; }
+            set { this.departmentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Department property
+        /// </summary>
+        /// <param name="department">Department property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDepartment(String department)
+        {
+            this.departmentField = department;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Department property is set
+        /// </summary>
+        /// <returns>true if Department property is set</returns>
+        public Boolean IsSetDepartment()
+        {
+            return  this.departmentField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Description property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Description")]
+        public String Description
+        {
+            get { return this.descriptionField ; }
+            set { this.descriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Description property
+        /// </summary>
+        /// <param name="description">Description property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDescription(String description)
+        {
+            this.descriptionField = description;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Description property is set
+        /// </summary>
+        /// <returns>true if Description property is set</returns>
+        public Boolean IsSetDescription()
+        {
+            return  this.descriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeweyDecimalNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeweyDecimalNumber")]
+        public String DeweyDecimalNumber
+        {
+            get { return this.deweyDecimalNumberField ; }
+            set { this.deweyDecimalNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeweyDecimalNumber property
+        /// </summary>
+        /// <param name="deweyDecimalNumber">DeweyDecimalNumber property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDeweyDecimalNumber(String deweyDecimalNumber)
+        {
+            this.deweyDecimalNumberField = deweyDecimalNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeweyDecimalNumber property is set
+        /// </summary>
+        /// <returns>true if DeweyDecimalNumber property is set</returns>
+        public Boolean IsSetDeweyDecimalNumber()
+        {
+            return  this.deweyDecimalNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DialColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DialColor")]
+        public String DialColor
+        {
+            get { return this.dialColorField ; }
+            set { this.dialColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DialColor property
+        /// </summary>
+        /// <param name="dialColor">DialColor property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDialColor(String dialColor)
+        {
+            this.dialColorField = dialColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DialColor property is set
+        /// </summary>
+        /// <returns>true if DialColor property is set</returns>
+        public Boolean IsSetDialColor()
+        {
+            return  this.dialColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DialWindowMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DialWindowMaterialType")]
+        public String DialWindowMaterialType
+        {
+            get { return this.dialWindowMaterialTypeField ; }
+            set { this.dialWindowMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DialWindowMaterialType property
+        /// </summary>
+        /// <param name="dialWindowMaterialType">DialWindowMaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDialWindowMaterialType(String dialWindowMaterialType)
+        {
+            this.dialWindowMaterialTypeField = dialWindowMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DialWindowMaterialType property is set
+        /// </summary>
+        /// <returns>true if DialWindowMaterialType property is set</returns>
+        public Boolean IsSetDialWindowMaterialType()
+        {
+            return  this.dialWindowMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DigitalZoom property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DigitalZoom")]
+        public DecimalWithUnits DigitalZoom
+        {
+            get { return this.digitalZoomField ; }
+            set { this.digitalZoomField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DigitalZoom property
+        /// </summary>
+        /// <param name="digitalZoom">DigitalZoom property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDigitalZoom(DecimalWithUnits digitalZoom)
+        {
+            this.digitalZoomField = digitalZoom;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DigitalZoom property is set
+        /// </summary>
+        /// <returns>true if DigitalZoom property is set</returns>
+        public Boolean IsSetDigitalZoom()
+        {
+            return this.digitalZoomField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Director property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Director")]
+        public List<String> Director
+        {
+            get
+            {
+                if (this.directorField == null)
+                {
+                    this.directorField = new List<String>();
+                }
+                return this.directorField;
+            }
+            set { this.directorField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Director property
+        /// </summary>
+        /// <param name="list">Director property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDirector(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Director.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Director property is set
+        /// </summary>
+        /// <returns>true if Director property is set</returns>
+        public Boolean IsSetDirector()
+        {
+            return (Director.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DisplaySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DisplaySize")]
+        public DecimalWithUnits DisplaySize
+        {
+            get { return this.displaySizeField ; }
+            set { this.displaySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DisplaySize property
+        /// </summary>
+        /// <param name="displaySize">DisplaySize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDisplaySize(DecimalWithUnits displaySize)
+        {
+            this.displaySizeField = displaySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DisplaySize property is set
+        /// </summary>
+        /// <returns>true if DisplaySize property is set</returns>
+        public Boolean IsSetDisplaySize()
+        {
+            return this.displaySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DrumSetPieceQuantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DrumSetPieceQuantity")]
+        public Decimal DrumSetPieceQuantity
+        {
+            get { return this.drumSetPieceQuantityField.GetValueOrDefault() ; }
+            set { this.drumSetPieceQuantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DrumSetPieceQuantity property
+        /// </summary>
+        /// <param name="drumSetPieceQuantity">DrumSetPieceQuantity property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDrumSetPieceQuantity(Decimal drumSetPieceQuantity)
+        {
+            this.drumSetPieceQuantityField = drumSetPieceQuantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DrumSetPieceQuantity property is set
+        /// </summary>
+        /// <returns>true if DrumSetPieceQuantity property is set</returns>
+        public Boolean IsSetDrumSetPieceQuantity()
+        {
+            return  this.drumSetPieceQuantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDLayers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDLayers")]
+        public Decimal DVDLayers
+        {
+            get { return this.DVDLayersField.GetValueOrDefault() ; }
+            set { this.DVDLayersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDLayers property
+        /// </summary>
+        /// <param name="DVDLayers">DVDLayers property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDVDLayers(Decimal DVDLayers)
+        {
+            this.DVDLayersField = DVDLayers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDLayers property is set
+        /// </summary>
+        /// <returns>true if DVDLayers property is set</returns>
+        public Boolean IsSetDVDLayers()
+        {
+            return  this.DVDLayersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDRWDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDRWDescription")]
+        public String DVDRWDescription
+        {
+            get { return this.DVDRWDescriptionField ; }
+            set { this.DVDRWDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDRWDescription property
+        /// </summary>
+        /// <param name="DVDRWDescription">DVDRWDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDVDRWDescription(String DVDRWDescription)
+        {
+            this.DVDRWDescriptionField = DVDRWDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDRWDescription property is set
+        /// </summary>
+        /// <returns>true if DVDRWDescription property is set</returns>
+        public Boolean IsSetDVDRWDescription()
+        {
+            return  this.DVDRWDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DVDSides property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DVDSides")]
+        public Decimal DVDSides
+        {
+            get { return this.DVDSidesField.GetValueOrDefault() ; }
+            set { this.DVDSidesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DVDSides property
+        /// </summary>
+        /// <param name="DVDSides">DVDSides property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDVDSides(Decimal DVDSides)
+        {
+            this.DVDSidesField = DVDSides;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DVDSides property is set
+        /// </summary>
+        /// <returns>true if DVDSides property is set</returns>
+        public Boolean IsSetDVDSides()
+        {
+            return  this.DVDSidesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DPCI property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DPCI")]
+        public String DPCI
+        {
+            get { return this.DPCIField ; }
+            set { this.DPCIField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DPCI property
+        /// </summary>
+        /// <param name="DPCI">DPCI property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithDPCI(String DPCI)
+        {
+            this.DPCIField = DPCI;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DPCI property is set
+        /// </summary>
+        /// <returns>true if DPCI property is set</returns>
+        public Boolean IsSetDPCI()
+        {
+            return  this.DPCIField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EAN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EAN")]
+        public String EAN
+        {
+            get { return this.EANField ; }
+            set { this.EANField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EAN property
+        /// </summary>
+        /// <param name="EAN">EAN property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithEAN(String EAN)
+        {
+            this.EANField = EAN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EAN property is set
+        /// </summary>
+        /// <returns>true if EAN property is set</returns>
+        public Boolean IsSetEAN()
+        {
+            return  this.EANField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Edition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Edition")]
+        public String Edition
+        {
+            get { return this.editionField ; }
+            set { this.editionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Edition property
+        /// </summary>
+        /// <param name="edition">Edition property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithEdition(String edition)
+        {
+            this.editionField = edition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Edition property is set
+        /// </summary>
+        /// <returns>true if Edition property is set</returns>
+        public Boolean IsSetEdition()
+        {
+            return  this.editionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ESRBAgeRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ESRBAgeRating")]
+        public String ESRBAgeRating
+        {
+            get { return this.ESRBAgeRatingField ; }
+            set { this.ESRBAgeRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ESRBAgeRating property
+        /// </summary>
+        /// <param name="ESRBAgeRating">ESRBAgeRating property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithESRBAgeRating(String ESRBAgeRating)
+        {
+            this.ESRBAgeRatingField = ESRBAgeRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ESRBAgeRating property is set
+        /// </summary>
+        /// <returns>true if ESRBAgeRating property is set</returns>
+        public Boolean IsSetESRBAgeRating()
+        {
+            return  this.ESRBAgeRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ExternalDisplaySupportDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ExternalDisplaySupportDescription")]
+        public String ExternalDisplaySupportDescription
+        {
+            get { return this.externalDisplaySupportDescriptionField ; }
+            set { this.externalDisplaySupportDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ExternalDisplaySupportDescription property
+        /// </summary>
+        /// <param name="externalDisplaySupportDescription">ExternalDisplaySupportDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithExternalDisplaySupportDescription(String externalDisplaySupportDescription)
+        {
+            this.externalDisplaySupportDescriptionField = externalDisplaySupportDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ExternalDisplaySupportDescription property is set
+        /// </summary>
+        /// <returns>true if ExternalDisplaySupportDescription property is set</returns>
+        public Boolean IsSetExternalDisplaySupportDescription()
+        {
+            return  this.externalDisplaySupportDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FabricType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FabricType")]
+        public String FabricType
+        {
+            get { return this.fabricTypeField ; }
+            set { this.fabricTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FabricType property
+        /// </summary>
+        /// <param name="fabricType">FabricType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFabricType(String fabricType)
+        {
+            this.fabricTypeField = fabricType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FabricType property is set
+        /// </summary>
+        /// <returns>true if FabricType property is set</returns>
+        public Boolean IsSetFabricType()
+        {
+            return  this.fabricTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FaxNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FaxNumber")]
+        public String FaxNumber
+        {
+            get { return this.faxNumberField ; }
+            set { this.faxNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FaxNumber property
+        /// </summary>
+        /// <param name="faxNumber">FaxNumber property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFaxNumber(String faxNumber)
+        {
+            this.faxNumberField = faxNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FaxNumber property is set
+        /// </summary>
+        /// <returns>true if FaxNumber property is set</returns>
+        public Boolean IsSetFaxNumber()
+        {
+            return  this.faxNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Feature property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Feature")]
+        public List<String> Feature
+        {
+            get
+            {
+                if (this.featureField == null)
+                {
+                    this.featureField = new List<String>();
+                }
+                return this.featureField;
+            }
+            set { this.featureField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Feature property
+        /// </summary>
+        /// <param name="list">Feature property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFeature(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Feature.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Feature property is set
+        /// </summary>
+        /// <returns>true if Feature property is set</returns>
+        public Boolean IsSetFeature()
+        {
+            return (Feature.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FirstIssueLeadTime property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstIssueLeadTime")]
+        public StringWithUnits FirstIssueLeadTime
+        {
+            get { return this.firstIssueLeadTimeField ; }
+            set { this.firstIssueLeadTimeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstIssueLeadTime property
+        /// </summary>
+        /// <param name="firstIssueLeadTime">FirstIssueLeadTime property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFirstIssueLeadTime(StringWithUnits firstIssueLeadTime)
+        {
+            this.firstIssueLeadTimeField = firstIssueLeadTime;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstIssueLeadTime property is set
+        /// </summary>
+        /// <returns>true if FirstIssueLeadTime property is set</returns>
+        public Boolean IsSetFirstIssueLeadTime()
+        {
+            return this.firstIssueLeadTimeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FloppyDiskDriveDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FloppyDiskDriveDescription")]
+        public String FloppyDiskDriveDescription
+        {
+            get { return this.floppyDiskDriveDescriptionField ; }
+            set { this.floppyDiskDriveDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FloppyDiskDriveDescription property
+        /// </summary>
+        /// <param name="floppyDiskDriveDescription">FloppyDiskDriveDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFloppyDiskDriveDescription(String floppyDiskDriveDescription)
+        {
+            this.floppyDiskDriveDescriptionField = floppyDiskDriveDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FloppyDiskDriveDescription property is set
+        /// </summary>
+        /// <returns>true if FloppyDiskDriveDescription property is set</returns>
+        public Boolean IsSetFloppyDiskDriveDescription()
+        {
+            return  this.floppyDiskDriveDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Format property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Format")]
+        public List<String> Format
+        {
+            get
+            {
+                if (this.formatField == null)
+                {
+                    this.formatField = new List<String>();
+                }
+                return this.formatField;
+            }
+            set { this.formatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Format property
+        /// </summary>
+        /// <param name="list">Format property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Format.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Format property is set
+        /// </summary>
+        /// <returns>true if Format property is set</returns>
+        public Boolean IsSetFormat()
+        {
+            return (Format.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FixedShippingCharge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FixedShippingCharge")]
+        public Price FixedShippingCharge
+        {
+            get { return this.fixedShippingChargeField ; }
+            set { this.fixedShippingChargeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FixedShippingCharge property
+        /// </summary>
+        /// <param name="fixedShippingCharge">FixedShippingCharge property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithFixedShippingCharge(Price fixedShippingCharge)
+        {
+            this.fixedShippingChargeField = fixedShippingCharge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FixedShippingCharge property is set
+        /// </summary>
+        /// <returns>true if FixedShippingCharge property is set</returns>
+        public Boolean IsSetFixedShippingCharge()
+        {
+            return this.fixedShippingChargeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the GemType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GemType")]
+        public String GemType
+        {
+            get { return this.gemTypeField ; }
+            set { this.gemTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GemType property
+        /// </summary>
+        /// <param name="gemType">GemType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGemType(String gemType)
+        {
+            this.gemTypeField = gemType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GemType property is set
+        /// </summary>
+        /// <returns>true if GemType property is set</returns>
+        public Boolean IsSetGemType()
+        {
+            return  this.gemTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsCardInterface property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsCardInterface")]
+        public String GraphicsCardInterface
+        {
+            get { return this.graphicsCardInterfaceField ; }
+            set { this.graphicsCardInterfaceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsCardInterface property
+        /// </summary>
+        /// <param name="graphicsCardInterface">GraphicsCardInterface property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGraphicsCardInterface(String graphicsCardInterface)
+        {
+            this.graphicsCardInterfaceField = graphicsCardInterface;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsCardInterface property is set
+        /// </summary>
+        /// <returns>true if GraphicsCardInterface property is set</returns>
+        public Boolean IsSetGraphicsCardInterface()
+        {
+            return  this.graphicsCardInterfaceField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsDescription")]
+        public String GraphicsDescription
+        {
+            get { return this.graphicsDescriptionField ; }
+            set { this.graphicsDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsDescription property
+        /// </summary>
+        /// <param name="graphicsDescription">GraphicsDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGraphicsDescription(String graphicsDescription)
+        {
+            this.graphicsDescriptionField = graphicsDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsDescription property is set
+        /// </summary>
+        /// <returns>true if GraphicsDescription property is set</returns>
+        public Boolean IsSetGraphicsDescription()
+        {
+            return  this.graphicsDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GraphicsMemorySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GraphicsMemorySize")]
+        public DecimalWithUnits GraphicsMemorySize
+        {
+            get { return this.graphicsMemorySizeField ; }
+            set { this.graphicsMemorySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GraphicsMemorySize property
+        /// </summary>
+        /// <param name="graphicsMemorySize">GraphicsMemorySize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGraphicsMemorySize(DecimalWithUnits graphicsMemorySize)
+        {
+            this.graphicsMemorySizeField = graphicsMemorySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GraphicsMemorySize property is set
+        /// </summary>
+        /// <returns>true if GraphicsMemorySize property is set</returns>
+        public Boolean IsSetGraphicsMemorySize()
+        {
+            return this.graphicsMemorySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the GuitarAttribute property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarAttribute")]
+        public String GuitarAttribute
+        {
+            get { return this.guitarAttributeField ; }
+            set { this.guitarAttributeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarAttribute property
+        /// </summary>
+        /// <param name="guitarAttribute">GuitarAttribute property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGuitarAttribute(String guitarAttribute)
+        {
+            this.guitarAttributeField = guitarAttribute;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarAttribute property is set
+        /// </summary>
+        /// <returns>true if GuitarAttribute property is set</returns>
+        public Boolean IsSetGuitarAttribute()
+        {
+            return  this.guitarAttributeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarBridgeSystem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarBridgeSystem")]
+        public String GuitarBridgeSystem
+        {
+            get { return this.guitarBridgeSystemField ; }
+            set { this.guitarBridgeSystemField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarBridgeSystem property
+        /// </summary>
+        /// <param name="guitarBridgeSystem">GuitarBridgeSystem property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGuitarBridgeSystem(String guitarBridgeSystem)
+        {
+            this.guitarBridgeSystemField = guitarBridgeSystem;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarBridgeSystem property is set
+        /// </summary>
+        /// <returns>true if GuitarBridgeSystem property is set</returns>
+        public Boolean IsSetGuitarBridgeSystem()
+        {
+            return  this.guitarBridgeSystemField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarPickThickness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarPickThickness")]
+        public String GuitarPickThickness
+        {
+            get { return this.guitarPickThicknessField ; }
+            set { this.guitarPickThicknessField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarPickThickness property
+        /// </summary>
+        /// <param name="guitarPickThickness">GuitarPickThickness property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGuitarPickThickness(String guitarPickThickness)
+        {
+            this.guitarPickThicknessField = guitarPickThickness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarPickThickness property is set
+        /// </summary>
+        /// <returns>true if GuitarPickThickness property is set</returns>
+        public Boolean IsSetGuitarPickThickness()
+        {
+            return  this.guitarPickThicknessField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GuitarPickupConfiguration property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GuitarPickupConfiguration")]
+        public String GuitarPickupConfiguration
+        {
+            get { return this.guitarPickupConfigurationField ; }
+            set { this.guitarPickupConfigurationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GuitarPickupConfiguration property
+        /// </summary>
+        /// <param name="guitarPickupConfiguration">GuitarPickupConfiguration property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithGuitarPickupConfiguration(String guitarPickupConfiguration)
+        {
+            this.guitarPickupConfigurationField = guitarPickupConfiguration;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GuitarPickupConfiguration property is set
+        /// </summary>
+        /// <returns>true if GuitarPickupConfiguration property is set</returns>
+        public Boolean IsSetGuitarPickupConfiguration()
+        {
+            return  this.guitarPickupConfigurationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HardDiskCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardDiskCount")]
+        public Decimal HardDiskCount
+        {
+            get { return this.hardDiskCountField.GetValueOrDefault() ; }
+            set { this.hardDiskCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardDiskCount property
+        /// </summary>
+        /// <param name="hardDiskCount">HardDiskCount property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHardDiskCount(Decimal hardDiskCount)
+        {
+            this.hardDiskCountField = hardDiskCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardDiskCount property is set
+        /// </summary>
+        /// <returns>true if HardDiskCount property is set</returns>
+        public Boolean IsSetHardDiskCount()
+        {
+            return  this.hardDiskCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HardDiskSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HardDiskSize")]
+        public NonNegativeIntegerWithUnits HardDiskSize
+        {
+            get { return this.hardDiskSizeField ; }
+            set { this.hardDiskSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HardDiskSize property
+        /// </summary>
+        /// <param name="hardDiskSize">HardDiskSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHardDiskSize(NonNegativeIntegerWithUnits hardDiskSize)
+        {
+            this.hardDiskSizeField = hardDiskSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HardDiskSize property is set
+        /// </summary>
+        /// <returns>true if HardDiskSize property is set</returns>
+        public Boolean IsSetHardDiskSize()
+        {
+            return this.hardDiskSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HasAutoFocus property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasAutoFocus")]
+        public Boolean HasAutoFocus
+        {
+            get { return this.hasAutoFocusField.GetValueOrDefault() ; }
+            set { this.hasAutoFocusField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasAutoFocus property
+        /// </summary>
+        /// <param name="hasAutoFocus">HasAutoFocus property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasAutoFocus(Boolean hasAutoFocus)
+        {
+            this.hasAutoFocusField = hasAutoFocus;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasAutoFocus property is set
+        /// </summary>
+        /// <returns>true if HasAutoFocus property is set</returns>
+        public Boolean IsSetHasAutoFocus()
+        {
+            return  this.hasAutoFocusField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasBurstMode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasBurstMode")]
+        public Boolean HasBurstMode
+        {
+            get { return this.hasBurstModeField.GetValueOrDefault() ; }
+            set { this.hasBurstModeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasBurstMode property
+        /// </summary>
+        /// <param name="hasBurstMode">HasBurstMode property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasBurstMode(Boolean hasBurstMode)
+        {
+            this.hasBurstModeField = hasBurstMode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasBurstMode property is set
+        /// </summary>
+        /// <returns>true if HasBurstMode property is set</returns>
+        public Boolean IsSetHasBurstMode()
+        {
+            return  this.hasBurstModeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasInCameraEditing property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasInCameraEditing")]
+        public Boolean HasInCameraEditing
+        {
+            get { return this.hasInCameraEditingField.GetValueOrDefault() ; }
+            set { this.hasInCameraEditingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasInCameraEditing property
+        /// </summary>
+        /// <param name="hasInCameraEditing">HasInCameraEditing property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasInCameraEditing(Boolean hasInCameraEditing)
+        {
+            this.hasInCameraEditingField = hasInCameraEditing;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasInCameraEditing property is set
+        /// </summary>
+        /// <returns>true if HasInCameraEditing property is set</returns>
+        public Boolean IsSetHasInCameraEditing()
+        {
+            return  this.hasInCameraEditingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasRedEyeReduction property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasRedEyeReduction")]
+        public Boolean HasRedEyeReduction
+        {
+            get { return this.hasRedEyeReductionField.GetValueOrDefault() ; }
+            set { this.hasRedEyeReductionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasRedEyeReduction property
+        /// </summary>
+        /// <param name="hasRedEyeReduction">HasRedEyeReduction property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasRedEyeReduction(Boolean hasRedEyeReduction)
+        {
+            this.hasRedEyeReductionField = hasRedEyeReduction;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasRedEyeReduction property is set
+        /// </summary>
+        /// <returns>true if HasRedEyeReduction property is set</returns>
+        public Boolean IsSetHasRedEyeReduction()
+        {
+            return  this.hasRedEyeReductionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasSelfTimer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasSelfTimer")]
+        public Boolean HasSelfTimer
+        {
+            get { return this.hasSelfTimerField.GetValueOrDefault() ; }
+            set { this.hasSelfTimerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasSelfTimer property
+        /// </summary>
+        /// <param name="hasSelfTimer">HasSelfTimer property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasSelfTimer(Boolean hasSelfTimer)
+        {
+            this.hasSelfTimerField = hasSelfTimer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasSelfTimer property is set
+        /// </summary>
+        /// <returns>true if HasSelfTimer property is set</returns>
+        public Boolean IsSetHasSelfTimer()
+        {
+            return  this.hasSelfTimerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasTripodMount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasTripodMount")]
+        public Boolean HasTripodMount
+        {
+            get { return this.hasTripodMountField.GetValueOrDefault() ; }
+            set { this.hasTripodMountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasTripodMount property
+        /// </summary>
+        /// <param name="hasTripodMount">HasTripodMount property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasTripodMount(Boolean hasTripodMount)
+        {
+            this.hasTripodMountField = hasTripodMount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasTripodMount property is set
+        /// </summary>
+        /// <returns>true if HasTripodMount property is set</returns>
+        public Boolean IsSetHasTripodMount()
+        {
+            return  this.hasTripodMountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasVideoOut property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasVideoOut")]
+        public Boolean HasVideoOut
+        {
+            get { return this.hasVideoOutField.GetValueOrDefault() ; }
+            set { this.hasVideoOutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasVideoOut property
+        /// </summary>
+        /// <param name="hasVideoOut">HasVideoOut property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasVideoOut(Boolean hasVideoOut)
+        {
+            this.hasVideoOutField = hasVideoOut;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasVideoOut property is set
+        /// </summary>
+        /// <returns>true if HasVideoOut property is set</returns>
+        public Boolean IsSetHasVideoOut()
+        {
+            return  this.hasVideoOutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HasViewfinder property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HasViewfinder")]
+        public Boolean HasViewfinder
+        {
+            get { return this.hasViewfinderField.GetValueOrDefault() ; }
+            set { this.hasViewfinderField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HasViewfinder property
+        /// </summary>
+        /// <param name="hasViewfinder">HasViewfinder property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHasViewfinder(Boolean hasViewfinder)
+        {
+            this.hasViewfinderField = hasViewfinder;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HasViewfinder property is set
+        /// </summary>
+        /// <returns>true if HasViewfinder property is set</returns>
+        public Boolean IsSetHasViewfinder()
+        {
+            return  this.hasViewfinderField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HazardousMaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HazardousMaterialType")]
+        public String HazardousMaterialType
+        {
+            get { return this.hazardousMaterialTypeField ; }
+            set { this.hazardousMaterialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HazardousMaterialType property
+        /// </summary>
+        /// <param name="hazardousMaterialType">HazardousMaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHazardousMaterialType(String hazardousMaterialType)
+        {
+            this.hazardousMaterialTypeField = hazardousMaterialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HazardousMaterialType property is set
+        /// </summary>
+        /// <returns>true if HazardousMaterialType property is set</returns>
+        public Boolean IsSetHazardousMaterialType()
+        {
+            return  this.hazardousMaterialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HoursOfOperation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HoursOfOperation")]
+        public String HoursOfOperation
+        {
+            get { return this.hoursOfOperationField ; }
+            set { this.hoursOfOperationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HoursOfOperation property
+        /// </summary>
+        /// <param name="hoursOfOperation">HoursOfOperation property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithHoursOfOperation(String hoursOfOperation)
+        {
+            this.hoursOfOperationField = hoursOfOperation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HoursOfOperation property is set
+        /// </summary>
+        /// <returns>true if HoursOfOperation property is set</returns>
+        public Boolean IsSetHoursOfOperation()
+        {
+            return  this.hoursOfOperationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IncludedSoftware property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IncludedSoftware")]
+        public String IncludedSoftware
+        {
+            get { return this.includedSoftwareField ; }
+            set { this.includedSoftwareField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IncludedSoftware property
+        /// </summary>
+        /// <param name="includedSoftware">IncludedSoftware property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIncludedSoftware(String includedSoftware)
+        {
+            this.includedSoftwareField = includedSoftware;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IncludedSoftware property is set
+        /// </summary>
+        /// <returns>true if IncludedSoftware property is set</returns>
+        public Boolean IsSetIncludedSoftware()
+        {
+            return  this.includedSoftwareField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IncludesMp3Player property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IncludesMp3Player")]
+        public Boolean IncludesMp3Player
+        {
+            get { return this.includesMp3PlayerField.GetValueOrDefault() ; }
+            set { this.includesMp3PlayerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IncludesMp3Player property
+        /// </summary>
+        /// <param name="includesMp3Player">IncludesMp3Player property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIncludesMp3Player(Boolean includesMp3Player)
+        {
+            this.includesMp3PlayerField = includesMp3Player;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IncludesMp3Player property is set
+        /// </summary>
+        /// <returns>true if IncludesMp3Player property is set</returns>
+        public Boolean IsSetIncludesMp3Player()
+        {
+            return  this.includesMp3PlayerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Indications property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Indications")]
+        public String Indications
+        {
+            get { return this.indicationsField ; }
+            set { this.indicationsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Indications property
+        /// </summary>
+        /// <param name="indications">Indications property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIndications(String indications)
+        {
+            this.indicationsField = indications;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Indications property is set
+        /// </summary>
+        /// <returns>true if Indications property is set</returns>
+        public Boolean IsSetIndications()
+        {
+            return  this.indicationsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Ingredients property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Ingredients")]
+        public String Ingredients
+        {
+            get { return this.ingredientsField ; }
+            set { this.ingredientsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Ingredients property
+        /// </summary>
+        /// <param name="ingredients">Ingredients property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIngredients(String ingredients)
+        {
+            this.ingredientsField = ingredients;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Ingredients property is set
+        /// </summary>
+        /// <returns>true if Ingredients property is set</returns>
+        public Boolean IsSetIngredients()
+        {
+            return  this.ingredientsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the InstrumentKey property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "InstrumentKey")]
+        public String InstrumentKey
+        {
+            get { return this.instrumentKeyField ; }
+            set { this.instrumentKeyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the InstrumentKey property
+        /// </summary>
+        /// <param name="instrumentKey">InstrumentKey property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithInstrumentKey(String instrumentKey)
+        {
+            this.instrumentKeyField = instrumentKey;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if InstrumentKey property is set
+        /// </summary>
+        /// <returns>true if InstrumentKey property is set</returns>
+        public Boolean IsSetInstrumentKey()
+        {
+            return  this.instrumentKeyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsAutographed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsAutographed")]
+        public Boolean IsAutographed
+        {
+            get { return this.isAutographedField.GetValueOrDefault() ; }
+            set { this.isAutographedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsAutographed property
+        /// </summary>
+        /// <param name="isAutographed">IsAutographed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIsAutographed(Boolean isAutographed)
+        {
+            this.isAutographedField = isAutographed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsAutographed property is set
+        /// </summary>
+        /// <returns>true if IsAutographed property is set</returns>
+        public Boolean IsSetIsAutographed()
+        {
+            return  this.isAutographedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISBN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISBN")]
+        public String ISBN
+        {
+            get { return this.ISBNField ; }
+            set { this.ISBNField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISBN property
+        /// </summary>
+        /// <param name="ISBN">ISBN property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithISBN(String ISBN)
+        {
+            this.ISBNField = ISBN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISBN property is set
+        /// </summary>
+        /// <returns>true if ISBN property is set</returns>
+        public Boolean IsSetISBN()
+        {
+            return  this.ISBNField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsFragile property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsFragile")]
+        public Boolean IsFragile
+        {
+            get { return this.isFragileField.GetValueOrDefault() ; }
+            set { this.isFragileField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsFragile property
+        /// </summary>
+        /// <param name="isFragile">IsFragile property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIsFragile(Boolean isFragile)
+        {
+            this.isFragileField = isFragile;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsFragile property is set
+        /// </summary>
+        /// <returns>true if IsFragile property is set</returns>
+        public Boolean IsSetIsFragile()
+        {
+            return  this.isFragileField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsLabCreated property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsLabCreated")]
+        public Boolean IsLabCreated
+        {
+            get { return this.isLabCreatedField.GetValueOrDefault() ; }
+            set { this.isLabCreatedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsLabCreated property
+        /// </summary>
+        /// <param name="isLabCreated">IsLabCreated property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIsLabCreated(Boolean isLabCreated)
+        {
+            this.isLabCreatedField = isLabCreated;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsLabCreated property is set
+        /// </summary>
+        /// <returns>true if IsLabCreated property is set</returns>
+        public Boolean IsSetIsLabCreated()
+        {
+            return  this.isLabCreatedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsMemorabilia property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsMemorabilia")]
+        public Boolean IsMemorabilia
+        {
+            get { return this.isMemorabiliaField.GetValueOrDefault() ; }
+            set { this.isMemorabiliaField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsMemorabilia property
+        /// </summary>
+        /// <param name="isMemorabilia">IsMemorabilia property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIsMemorabilia(Boolean isMemorabilia)
+        {
+            this.isMemorabiliaField = isMemorabilia;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsMemorabilia property is set
+        /// </summary>
+        /// <returns>true if IsMemorabilia property is set</returns>
+        public Boolean IsSetIsMemorabilia()
+        {
+            return  this.isMemorabiliaField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISOEquivalent property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISOEquivalent")]
+        public NonNegativeIntegerWithUnits ISOEquivalent
+        {
+            get { return this.ISOEquivalentField ; }
+            set { this.ISOEquivalentField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISOEquivalent property
+        /// </summary>
+        /// <param name="ISOEquivalent">ISOEquivalent property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithISOEquivalent(NonNegativeIntegerWithUnits ISOEquivalent)
+        {
+            this.ISOEquivalentField = ISOEquivalent;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISOEquivalent property is set
+        /// </summary>
+        /// <returns>true if ISOEquivalent property is set</returns>
+        public Boolean IsSetISOEquivalent()
+        {
+            return this.ISOEquivalentField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the IssuesPerYear property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IssuesPerYear")]
+        public String IssuesPerYear
+        {
+            get { return this.issuesPerYearField ; }
+            set { this.issuesPerYearField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IssuesPerYear property
+        /// </summary>
+        /// <param name="issuesPerYear">IssuesPerYear property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithIssuesPerYear(String issuesPerYear)
+        {
+            this.issuesPerYearField = issuesPerYear;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IssuesPerYear property is set
+        /// </summary>
+        /// <returns>true if IssuesPerYear property is set</returns>
+        public Boolean IsSetIssuesPerYear()
+        {
+            return  this.issuesPerYearField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemDimensions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemDimensions")]
+        public ItemDimensions ItemDimensions
+        {
+            get { return this.itemDimensionsField ; }
+            set { this.itemDimensionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemDimensions property
+        /// </summary>
+        /// <param name="itemDimensions">ItemDimensions property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithItemDimensions(ItemDimensions itemDimensions)
+        {
+            this.itemDimensionsField = itemDimensions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemDimensions property is set
+        /// </summary>
+        /// <returns>true if ItemDimensions property is set</returns>
+        public Boolean IsSetItemDimensions()
+        {
+            return this.itemDimensionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the KeyboardDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "KeyboardDescription")]
+        public String KeyboardDescription
+        {
+            get { return this.keyboardDescriptionField ; }
+            set { this.keyboardDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the KeyboardDescription property
+        /// </summary>
+        /// <param name="keyboardDescription">KeyboardDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithKeyboardDescription(String keyboardDescription)
+        {
+            this.keyboardDescriptionField = keyboardDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if KeyboardDescription property is set
+        /// </summary>
+        /// <returns>true if KeyboardDescription property is set</returns>
+        public Boolean IsSetKeyboardDescription()
+        {
+            return  this.keyboardDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Label property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Label")]
+        public String Label
+        {
+            get { return this.labelField ; }
+            set { this.labelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Label property
+        /// </summary>
+        /// <param name="label">Label property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithLabel(String label)
+        {
+            this.labelField = label;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Label property is set
+        /// </summary>
+        /// <returns>true if Label property is set</returns>
+        public Boolean IsSetLabel()
+        {
+            return  this.labelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Languages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Languages")]
+        public Languages Languages
+        {
+            get { return this.languagesField ; }
+            set { this.languagesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Languages property
+        /// </summary>
+        /// <param name="languages">Languages property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithLanguages(Languages languages)
+        {
+            this.languagesField = languages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Languages property is set
+        /// </summary>
+        /// <returns>true if Languages property is set</returns>
+        public Boolean IsSetLanguages()
+        {
+            return this.languagesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LegalDisclaimer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LegalDisclaimer")]
+        public String LegalDisclaimer
+        {
+            get { return this.legalDisclaimerField ; }
+            set { this.legalDisclaimerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LegalDisclaimer property
+        /// </summary>
+        /// <param name="legalDisclaimer">LegalDisclaimer property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithLegalDisclaimer(String legalDisclaimer)
+        {
+            this.legalDisclaimerField = legalDisclaimer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LegalDisclaimer property is set
+        /// </summary>
+        /// <returns>true if LegalDisclaimer property is set</returns>
+        public Boolean IsSetLegalDisclaimer()
+        {
+            return  this.legalDisclaimerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LineVoltage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LineVoltage")]
+        public String LineVoltage
+        {
+            get { return this.lineVoltageField ; }
+            set { this.lineVoltageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LineVoltage property
+        /// </summary>
+        /// <param name="lineVoltage">LineVoltage property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithLineVoltage(String lineVoltage)
+        {
+            this.lineVoltageField = lineVoltage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LineVoltage property is set
+        /// </summary>
+        /// <returns>true if LineVoltage property is set</returns>
+        public Boolean IsSetLineVoltage()
+        {
+            return  this.lineVoltageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListPrice")]
+        public Price ListPrice
+        {
+            get { return this.listPriceField ; }
+            set { this.listPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListPrice property
+        /// </summary>
+        /// <param name="listPrice">ListPrice property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithListPrice(Price listPrice)
+        {
+            this.listPriceField = listPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListPrice property is set
+        /// </summary>
+        /// <returns>true if ListPrice property is set</returns>
+        public Boolean IsSetListPrice()
+        {
+            return this.listPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MacroFocusRange property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MacroFocusRange")]
+        public String MacroFocusRange
+        {
+            get { return this.macroFocusRangeField ; }
+            set { this.macroFocusRangeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MacroFocusRange property
+        /// </summary>
+        /// <param name="macroFocusRange">MacroFocusRange property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMacroFocusRange(String macroFocusRange)
+        {
+            this.macroFocusRangeField = macroFocusRange;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MacroFocusRange property is set
+        /// </summary>
+        /// <returns>true if MacroFocusRange property is set</returns>
+        public Boolean IsSetMacroFocusRange()
+        {
+            return  this.macroFocusRangeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MagazineType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MagazineType")]
+        public String MagazineType
+        {
+            get { return this.magazineTypeField ; }
+            set { this.magazineTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MagazineType property
+        /// </summary>
+        /// <param name="magazineType">MagazineType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMagazineType(String magazineType)
+        {
+            this.magazineTypeField = magazineType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MagazineType property is set
+        /// </summary>
+        /// <returns>true if MagazineType property is set</returns>
+        public Boolean IsSetMagazineType()
+        {
+            return  this.magazineTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MalletHardness property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MalletHardness")]
+        public String MalletHardness
+        {
+            get { return this.malletHardnessField ; }
+            set { this.malletHardnessField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MalletHardness property
+        /// </summary>
+        /// <param name="malletHardness">MalletHardness property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMalletHardness(String malletHardness)
+        {
+            this.malletHardnessField = malletHardness;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MalletHardness property is set
+        /// </summary>
+        /// <returns>true if MalletHardness property is set</returns>
+        public Boolean IsSetMalletHardness()
+        {
+            return  this.malletHardnessField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Manufacturer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Manufacturer")]
+        public String Manufacturer
+        {
+            get { return this.manufacturerField ; }
+            set { this.manufacturerField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Manufacturer property
+        /// </summary>
+        /// <param name="manufacturer">Manufacturer property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithManufacturer(String manufacturer)
+        {
+            this.manufacturerField = manufacturer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Manufacturer property is set
+        /// </summary>
+        /// <returns>true if Manufacturer property is set</returns>
+        public Boolean IsSetManufacturer()
+        {
+            return  this.manufacturerField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerLaborWarrantyDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerLaborWarrantyDescription")]
+        public String ManufacturerLaborWarrantyDescription
+        {
+            get { return this.manufacturerLaborWarrantyDescriptionField ; }
+            set { this.manufacturerLaborWarrantyDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerLaborWarrantyDescription property
+        /// </summary>
+        /// <param name="manufacturerLaborWarrantyDescription">ManufacturerLaborWarrantyDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithManufacturerLaborWarrantyDescription(String manufacturerLaborWarrantyDescription)
+        {
+            this.manufacturerLaborWarrantyDescriptionField = manufacturerLaborWarrantyDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerLaborWarrantyDescription property is set
+        /// </summary>
+        /// <returns>true if ManufacturerLaborWarrantyDescription property is set</returns>
+        public Boolean IsSetManufacturerLaborWarrantyDescription()
+        {
+            return  this.manufacturerLaborWarrantyDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerMaximumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerMaximumAge")]
+        public DecimalWithUnits ManufacturerMaximumAge
+        {
+            get { return this.manufacturerMaximumAgeField ; }
+            set { this.manufacturerMaximumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerMaximumAge property
+        /// </summary>
+        /// <param name="manufacturerMaximumAge">ManufacturerMaximumAge property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithManufacturerMaximumAge(DecimalWithUnits manufacturerMaximumAge)
+        {
+            this.manufacturerMaximumAgeField = manufacturerMaximumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerMaximumAge property is set
+        /// </summary>
+        /// <returns>true if ManufacturerMaximumAge property is set</returns>
+        public Boolean IsSetManufacturerMaximumAge()
+        {
+            return this.manufacturerMaximumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerMinimumAge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerMinimumAge")]
+        public DecimalWithUnits ManufacturerMinimumAge
+        {
+            get { return this.manufacturerMinimumAgeField ; }
+            set { this.manufacturerMinimumAgeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerMinimumAge property
+        /// </summary>
+        /// <param name="manufacturerMinimumAge">ManufacturerMinimumAge property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithManufacturerMinimumAge(DecimalWithUnits manufacturerMinimumAge)
+        {
+            this.manufacturerMinimumAgeField = manufacturerMinimumAge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerMinimumAge property is set
+        /// </summary>
+        /// <returns>true if ManufacturerMinimumAge property is set</returns>
+        public Boolean IsSetManufacturerMinimumAge()
+        {
+            return this.manufacturerMinimumAgeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ManufacturerPartsWarrantyDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ManufacturerPartsWarrantyDescription")]
+        public String ManufacturerPartsWarrantyDescription
+        {
+            get { return this.manufacturerPartsWarrantyDescriptionField ; }
+            set { this.manufacturerPartsWarrantyDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ManufacturerPartsWarrantyDescription property
+        /// </summary>
+        /// <param name="manufacturerPartsWarrantyDescription">ManufacturerPartsWarrantyDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithManufacturerPartsWarrantyDescription(String manufacturerPartsWarrantyDescription)
+        {
+            this.manufacturerPartsWarrantyDescriptionField = manufacturerPartsWarrantyDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ManufacturerPartsWarrantyDescription property is set
+        /// </summary>
+        /// <returns>true if ManufacturerPartsWarrantyDescription property is set</returns>
+        public Boolean IsSetManufacturerPartsWarrantyDescription()
+        {
+            return  this.manufacturerPartsWarrantyDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaterialType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaterialType")]
+        public String MaterialType
+        {
+            get { return this.materialTypeField ; }
+            set { this.materialTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaterialType property
+        /// </summary>
+        /// <param name="materialType">MaterialType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaterialType(String materialType)
+        {
+            this.materialTypeField = materialType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaterialType property is set
+        /// </summary>
+        /// <returns>true if MaterialType property is set</returns>
+        public Boolean IsSetMaterialType()
+        {
+            return  this.materialTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumAperture property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumAperture")]
+        public DecimalWithUnits MaximumAperture
+        {
+            get { return this.maximumApertureField ; }
+            set { this.maximumApertureField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumAperture property
+        /// </summary>
+        /// <param name="maximumAperture">MaximumAperture property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumAperture(DecimalWithUnits maximumAperture)
+        {
+            this.maximumApertureField = maximumAperture;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumAperture property is set
+        /// </summary>
+        /// <returns>true if MaximumAperture property is set</returns>
+        public Boolean IsSetMaximumAperture()
+        {
+            return this.maximumApertureField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumColorDepth property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumColorDepth")]
+        public String MaximumColorDepth
+        {
+            get { return this.maximumColorDepthField ; }
+            set { this.maximumColorDepthField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumColorDepth property
+        /// </summary>
+        /// <param name="maximumColorDepth">MaximumColorDepth property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumColorDepth(String maximumColorDepth)
+        {
+            this.maximumColorDepthField = maximumColorDepth;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumColorDepth property is set
+        /// </summary>
+        /// <returns>true if MaximumColorDepth property is set</returns>
+        public Boolean IsSetMaximumColorDepth()
+        {
+            return  this.maximumColorDepthField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumFocalLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumFocalLength")]
+        public DecimalWithUnits MaximumFocalLength
+        {
+            get { return this.maximumFocalLengthField ; }
+            set { this.maximumFocalLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumFocalLength property
+        /// </summary>
+        /// <param name="maximumFocalLength">MaximumFocalLength property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumFocalLength(DecimalWithUnits maximumFocalLength)
+        {
+            this.maximumFocalLengthField = maximumFocalLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumFocalLength property is set
+        /// </summary>
+        /// <returns>true if MaximumFocalLength property is set</returns>
+        public Boolean IsSetMaximumFocalLength()
+        {
+            return this.maximumFocalLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumHighResolutionImages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumHighResolutionImages")]
+        public NonNegativeIntegerWithUnits MaximumHighResolutionImages
+        {
+            get { return this.maximumHighResolutionImagesField ; }
+            set { this.maximumHighResolutionImagesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumHighResolutionImages property
+        /// </summary>
+        /// <param name="maximumHighResolutionImages">MaximumHighResolutionImages property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumHighResolutionImages(NonNegativeIntegerWithUnits maximumHighResolutionImages)
+        {
+            this.maximumHighResolutionImagesField = maximumHighResolutionImages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumHighResolutionImages property is set
+        /// </summary>
+        /// <returns>true if MaximumHighResolutionImages property is set</returns>
+        public Boolean IsSetMaximumHighResolutionImages()
+        {
+            return this.maximumHighResolutionImagesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumHorizontalResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumHorizontalResolution")]
+        public NonNegativeIntegerWithUnits MaximumHorizontalResolution
+        {
+            get { return this.maximumHorizontalResolutionField ; }
+            set { this.maximumHorizontalResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumHorizontalResolution property
+        /// </summary>
+        /// <param name="maximumHorizontalResolution">MaximumHorizontalResolution property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumHorizontalResolution(NonNegativeIntegerWithUnits maximumHorizontalResolution)
+        {
+            this.maximumHorizontalResolutionField = maximumHorizontalResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumHorizontalResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumHorizontalResolution property is set</returns>
+        public Boolean IsSetMaximumHorizontalResolution()
+        {
+            return this.maximumHorizontalResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumLowResolutionImages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumLowResolutionImages")]
+        public String MaximumLowResolutionImages
+        {
+            get { return this.maximumLowResolutionImagesField ; }
+            set { this.maximumLowResolutionImagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumLowResolutionImages property
+        /// </summary>
+        /// <param name="maximumLowResolutionImages">MaximumLowResolutionImages property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumLowResolutionImages(String maximumLowResolutionImages)
+        {
+            this.maximumLowResolutionImagesField = maximumLowResolutionImages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumLowResolutionImages property is set
+        /// </summary>
+        /// <returns>true if MaximumLowResolutionImages property is set</returns>
+        public Boolean IsSetMaximumLowResolutionImages()
+        {
+            return  this.maximumLowResolutionImagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MaximumResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumResolution")]
+        public DecimalWithUnits MaximumResolution
+        {
+            get { return this.maximumResolutionField ; }
+            set { this.maximumResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumResolution property
+        /// </summary>
+        /// <param name="maximumResolution">MaximumResolution property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumResolution(DecimalWithUnits maximumResolution)
+        {
+            this.maximumResolutionField = maximumResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumResolution property is set</returns>
+        public Boolean IsSetMaximumResolution()
+        {
+            return this.maximumResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumShutterSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumShutterSpeed")]
+        public DecimalWithUnits MaximumShutterSpeed
+        {
+            get { return this.maximumShutterSpeedField ; }
+            set { this.maximumShutterSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumShutterSpeed property
+        /// </summary>
+        /// <param name="maximumShutterSpeed">MaximumShutterSpeed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumShutterSpeed(DecimalWithUnits maximumShutterSpeed)
+        {
+            this.maximumShutterSpeedField = maximumShutterSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumShutterSpeed property is set
+        /// </summary>
+        /// <returns>true if MaximumShutterSpeed property is set</returns>
+        public Boolean IsSetMaximumShutterSpeed()
+        {
+            return this.maximumShutterSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumVerticalResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumVerticalResolution")]
+        public NonNegativeIntegerWithUnits MaximumVerticalResolution
+        {
+            get { return this.maximumVerticalResolutionField ; }
+            set { this.maximumVerticalResolutionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumVerticalResolution property
+        /// </summary>
+        /// <param name="maximumVerticalResolution">MaximumVerticalResolution property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumVerticalResolution(NonNegativeIntegerWithUnits maximumVerticalResolution)
+        {
+            this.maximumVerticalResolutionField = maximumVerticalResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumVerticalResolution property is set
+        /// </summary>
+        /// <returns>true if MaximumVerticalResolution property is set</returns>
+        public Boolean IsSetMaximumVerticalResolution()
+        {
+            return this.maximumVerticalResolutionField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MaximumWeightRecommendation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MaximumWeightRecommendation")]
+        public DecimalWithUnits MaximumWeightRecommendation
+        {
+            get { return this.maximumWeightRecommendationField ; }
+            set { this.maximumWeightRecommendationField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MaximumWeightRecommendation property
+        /// </summary>
+        /// <param name="maximumWeightRecommendation">MaximumWeightRecommendation property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMaximumWeightRecommendation(DecimalWithUnits maximumWeightRecommendation)
+        {
+            this.maximumWeightRecommendationField = maximumWeightRecommendation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MaximumWeightRecommendation property is set
+        /// </summary>
+        /// <returns>true if MaximumWeightRecommendation property is set</returns>
+        public Boolean IsSetMaximumWeightRecommendation()
+        {
+            return this.maximumWeightRecommendationField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MemorySlotsAvailable property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MemorySlotsAvailable")]
+        public Decimal MemorySlotsAvailable
+        {
+            get { return this.memorySlotsAvailableField.GetValueOrDefault() ; }
+            set { this.memorySlotsAvailableField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MemorySlotsAvailable property
+        /// </summary>
+        /// <param name="memorySlotsAvailable">MemorySlotsAvailable property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMemorySlotsAvailable(Decimal memorySlotsAvailable)
+        {
+            this.memorySlotsAvailableField = memorySlotsAvailable;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MemorySlotsAvailable property is set
+        /// </summary>
+        /// <returns>true if MemorySlotsAvailable property is set</returns>
+        public Boolean IsSetMemorySlotsAvailable()
+        {
+            return  this.memorySlotsAvailableField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetalStamp property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetalStamp")]
+        public String MetalStamp
+        {
+            get { return this.metalStampField ; }
+            set { this.metalStampField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetalStamp property
+        /// </summary>
+        /// <param name="metalStamp">MetalStamp property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMetalStamp(String metalStamp)
+        {
+            this.metalStampField = metalStamp;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MetalStamp property is set
+        /// </summary>
+        /// <returns>true if MetalStamp property is set</returns>
+        public Boolean IsSetMetalStamp()
+        {
+            return  this.metalStampField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MetalType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MetalType")]
+        public String MetalType
+        {
+            get { return this.metalTypeField ; }
+            set { this.metalTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MetalType property
+        /// </summary>
+        /// <param name="metalType">MetalType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMetalType(String metalType)
+        {
+            this.metalTypeField = metalType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MetalType property is set
+        /// </summary>
+        /// <returns>true if MetalType property is set</returns>
+        public Boolean IsSetMetalType()
+        {
+            return  this.metalTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MiniMovieDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MiniMovieDescription")]
+        public String MiniMovieDescription
+        {
+            get { return this.miniMovieDescriptionField ; }
+            set { this.miniMovieDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MiniMovieDescription property
+        /// </summary>
+        /// <param name="miniMovieDescription">MiniMovieDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMiniMovieDescription(String miniMovieDescription)
+        {
+            this.miniMovieDescriptionField = miniMovieDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MiniMovieDescription property is set
+        /// </summary>
+        /// <returns>true if MiniMovieDescription property is set</returns>
+        public Boolean IsSetMiniMovieDescription()
+        {
+            return  this.miniMovieDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MinimumFocalLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumFocalLength")]
+        public DecimalWithUnits MinimumFocalLength
+        {
+            get { return this.minimumFocalLengthField ; }
+            set { this.minimumFocalLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumFocalLength property
+        /// </summary>
+        /// <param name="minimumFocalLength">MinimumFocalLength property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMinimumFocalLength(DecimalWithUnits minimumFocalLength)
+        {
+            this.minimumFocalLengthField = minimumFocalLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumFocalLength property is set
+        /// </summary>
+        /// <returns>true if MinimumFocalLength property is set</returns>
+        public Boolean IsSetMinimumFocalLength()
+        {
+            return this.minimumFocalLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MinimumShutterSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MinimumShutterSpeed")]
+        public DecimalWithUnits MinimumShutterSpeed
+        {
+            get { return this.minimumShutterSpeedField ; }
+            set { this.minimumShutterSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MinimumShutterSpeed property
+        /// </summary>
+        /// <param name="minimumShutterSpeed">MinimumShutterSpeed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMinimumShutterSpeed(DecimalWithUnits minimumShutterSpeed)
+        {
+            this.minimumShutterSpeedField = minimumShutterSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MinimumShutterSpeed property is set
+        /// </summary>
+        /// <returns>true if MinimumShutterSpeed property is set</returns>
+        public Boolean IsSetMinimumShutterSpeed()
+        {
+            return this.minimumShutterSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Model property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Model")]
+        public String Model
+        {
+            get { return this.modelField ; }
+            set { this.modelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Model property
+        /// </summary>
+        /// <param name="model">Model property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithModel(String model)
+        {
+            this.modelField = model;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Model property is set
+        /// </summary>
+        /// <returns>true if Model property is set</returns>
+        public Boolean IsSetModel()
+        {
+            return  this.modelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ModelYear property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ModelYear")]
+        public Decimal ModelYear
+        {
+            get { return this.modelYearField.GetValueOrDefault() ; }
+            set { this.modelYearField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ModelYear property
+        /// </summary>
+        /// <param name="modelYear">ModelYear property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithModelYear(Decimal modelYear)
+        {
+            this.modelYearField = modelYear;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ModelYear property is set
+        /// </summary>
+        /// <returns>true if ModelYear property is set</returns>
+        public Boolean IsSetModelYear()
+        {
+            return  this.modelYearField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ModemDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ModemDescription")]
+        public String ModemDescription
+        {
+            get { return this.modemDescriptionField ; }
+            set { this.modemDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ModemDescription property
+        /// </summary>
+        /// <param name="modemDescription">ModemDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithModemDescription(String modemDescription)
+        {
+            this.modemDescriptionField = modemDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ModemDescription property is set
+        /// </summary>
+        /// <returns>true if ModemDescription property is set</returns>
+        public Boolean IsSetModemDescription()
+        {
+            return  this.modemDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MonitorSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MonitorSize")]
+        public DecimalWithUnits MonitorSize
+        {
+            get { return this.monitorSizeField ; }
+            set { this.monitorSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MonitorSize property
+        /// </summary>
+        /// <param name="monitorSize">MonitorSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMonitorSize(DecimalWithUnits monitorSize)
+        {
+            this.monitorSizeField = monitorSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MonitorSize property is set
+        /// </summary>
+        /// <returns>true if MonitorSize property is set</returns>
+        public Boolean IsSetMonitorSize()
+        {
+            return this.monitorSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MonitorViewableDiagonalSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MonitorViewableDiagonalSize")]
+        public DecimalWithUnits MonitorViewableDiagonalSize
+        {
+            get { return this.monitorViewableDiagonalSizeField ; }
+            set { this.monitorViewableDiagonalSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MonitorViewableDiagonalSize property
+        /// </summary>
+        /// <param name="monitorViewableDiagonalSize">MonitorViewableDiagonalSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMonitorViewableDiagonalSize(DecimalWithUnits monitorViewableDiagonalSize)
+        {
+            this.monitorViewableDiagonalSizeField = monitorViewableDiagonalSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MonitorViewableDiagonalSize property is set
+        /// </summary>
+        /// <returns>true if MonitorViewableDiagonalSize property is set</returns>
+        public Boolean IsSetMonitorViewableDiagonalSize()
+        {
+            return this.monitorViewableDiagonalSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MouseDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MouseDescription")]
+        public String MouseDescription
+        {
+            get { return this.mouseDescriptionField ; }
+            set { this.mouseDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MouseDescription property
+        /// </summary>
+        /// <param name="mouseDescription">MouseDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMouseDescription(String mouseDescription)
+        {
+            this.mouseDescriptionField = mouseDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MouseDescription property is set
+        /// </summary>
+        /// <returns>true if MouseDescription property is set</returns>
+        public Boolean IsSetMouseDescription()
+        {
+            return  this.mouseDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MPN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MPN")]
+        public String MPN
+        {
+            get { return this.MPNField ; }
+            set { this.MPNField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MPN property
+        /// </summary>
+        /// <param name="MPN">MPN property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMPN(String MPN)
+        {
+            this.MPNField = MPN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MPN property is set
+        /// </summary>
+        /// <returns>true if MPN property is set</returns>
+        public Boolean IsSetMPN()
+        {
+            return  this.MPNField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MusicalStyle property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MusicalStyle")]
+        public String MusicalStyle
+        {
+            get { return this.musicalStyleField ; }
+            set { this.musicalStyleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MusicalStyle property
+        /// </summary>
+        /// <param name="musicalStyle">MusicalStyle property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithMusicalStyle(String musicalStyle)
+        {
+            this.musicalStyleField = musicalStyle;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MusicalStyle property is set
+        /// </summary>
+        /// <returns>true if MusicalStyle property is set</returns>
+        public Boolean IsSetMusicalStyle()
+        {
+            return  this.musicalStyleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NativeResolution property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NativeResolution")]
+        public String NativeResolution
+        {
+            get { return this.nativeResolutionField ; }
+            set { this.nativeResolutionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NativeResolution property
+        /// </summary>
+        /// <param name="nativeResolution">NativeResolution property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNativeResolution(String nativeResolution)
+        {
+            this.nativeResolutionField = nativeResolution;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NativeResolution property is set
+        /// </summary>
+        /// <returns>true if NativeResolution property is set</returns>
+        public Boolean IsSetNativeResolution()
+        {
+            return  this.nativeResolutionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Neighborhood property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Neighborhood")]
+        public String Neighborhood
+        {
+            get { return this.neighborhoodField ; }
+            set { this.neighborhoodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Neighborhood property
+        /// </summary>
+        /// <param name="neighborhood">Neighborhood property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNeighborhood(String neighborhood)
+        {
+            this.neighborhoodField = neighborhood;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Neighborhood property is set
+        /// </summary>
+        /// <returns>true if Neighborhood property is set</returns>
+        public Boolean IsSetNeighborhood()
+        {
+            return  this.neighborhoodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NetworkInterfaceDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NetworkInterfaceDescription")]
+        public String NetworkInterfaceDescription
+        {
+            get { return this.networkInterfaceDescriptionField ; }
+            set { this.networkInterfaceDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NetworkInterfaceDescription property
+        /// </summary>
+        /// <param name="networkInterfaceDescription">NetworkInterfaceDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNetworkInterfaceDescription(String networkInterfaceDescription)
+        {
+            this.networkInterfaceDescriptionField = networkInterfaceDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NetworkInterfaceDescription property is set
+        /// </summary>
+        /// <returns>true if NetworkInterfaceDescription property is set</returns>
+        public Boolean IsSetNetworkInterfaceDescription()
+        {
+            return  this.networkInterfaceDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NotebookDisplayTechnology property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NotebookDisplayTechnology")]
+        public String NotebookDisplayTechnology
+        {
+            get { return this.notebookDisplayTechnologyField ; }
+            set { this.notebookDisplayTechnologyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NotebookDisplayTechnology property
+        /// </summary>
+        /// <param name="notebookDisplayTechnology">NotebookDisplayTechnology property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNotebookDisplayTechnology(String notebookDisplayTechnology)
+        {
+            this.notebookDisplayTechnologyField = notebookDisplayTechnology;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NotebookDisplayTechnology property is set
+        /// </summary>
+        /// <returns>true if NotebookDisplayTechnology property is set</returns>
+        public Boolean IsSetNotebookDisplayTechnology()
+        {
+            return  this.notebookDisplayTechnologyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NotebookPointingDeviceDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NotebookPointingDeviceDescription")]
+        public String NotebookPointingDeviceDescription
+        {
+            get { return this.notebookPointingDeviceDescriptionField ; }
+            set { this.notebookPointingDeviceDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NotebookPointingDeviceDescription property
+        /// </summary>
+        /// <param name="notebookPointingDeviceDescription">NotebookPointingDeviceDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNotebookPointingDeviceDescription(String notebookPointingDeviceDescription)
+        {
+            this.notebookPointingDeviceDescriptionField = notebookPointingDeviceDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NotebookPointingDeviceDescription property is set
+        /// </summary>
+        /// <returns>true if NotebookPointingDeviceDescription property is set</returns>
+        public Boolean IsSetNotebookPointingDeviceDescription()
+        {
+            return  this.notebookPointingDeviceDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfDiscs property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfDiscs")]
+        public Decimal NumberOfDiscs
+        {
+            get { return this.numberOfDiscsField.GetValueOrDefault() ; }
+            set { this.numberOfDiscsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfDiscs property
+        /// </summary>
+        /// <param name="numberOfDiscs">NumberOfDiscs property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfDiscs(Decimal numberOfDiscs)
+        {
+            this.numberOfDiscsField = numberOfDiscs;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfDiscs property is set
+        /// </summary>
+        /// <returns>true if NumberOfDiscs property is set</returns>
+        public Boolean IsSetNumberOfDiscs()
+        {
+            return  this.numberOfDiscsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfIssues property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfIssues")]
+        public Decimal NumberOfIssues
+        {
+            get { return this.numberOfIssuesField.GetValueOrDefault() ; }
+            set { this.numberOfIssuesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfIssues property
+        /// </summary>
+        /// <param name="numberOfIssues">NumberOfIssues property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfIssues(Decimal numberOfIssues)
+        {
+            this.numberOfIssuesField = numberOfIssues;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfIssues property is set
+        /// </summary>
+        /// <returns>true if NumberOfIssues property is set</returns>
+        public Boolean IsSetNumberOfIssues()
+        {
+            return  this.numberOfIssuesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfItems")]
+        public Decimal NumberOfItems
+        {
+            get { return this.numberOfItemsField.GetValueOrDefault() ; }
+            set { this.numberOfItemsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfItems property
+        /// </summary>
+        /// <param name="numberOfItems">NumberOfItems property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfItems(Decimal numberOfItems)
+        {
+            this.numberOfItemsField = numberOfItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfItems property is set
+        /// </summary>
+        /// <returns>true if NumberOfItems property is set</returns>
+        public Boolean IsSetNumberOfItems()
+        {
+            return  this.numberOfItemsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfKeys property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfKeys")]
+        public Decimal NumberOfKeys
+        {
+            get { return this.numberOfKeysField.GetValueOrDefault() ; }
+            set { this.numberOfKeysField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfKeys property
+        /// </summary>
+        /// <param name="numberOfKeys">NumberOfKeys property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfKeys(Decimal numberOfKeys)
+        {
+            this.numberOfKeysField = numberOfKeys;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfKeys property is set
+        /// </summary>
+        /// <returns>true if NumberOfKeys property is set</returns>
+        public Boolean IsSetNumberOfKeys()
+        {
+            return  this.numberOfKeysField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfPages")]
+        public Decimal NumberOfPages
+        {
+            get { return this.numberOfPagesField.GetValueOrDefault() ; }
+            set { this.numberOfPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfPages property
+        /// </summary>
+        /// <param name="numberOfPages">NumberOfPages property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfPages(Decimal numberOfPages)
+        {
+            this.numberOfPagesField = numberOfPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfPages property is set
+        /// </summary>
+        /// <returns>true if NumberOfPages property is set</returns>
+        public Boolean IsSetNumberOfPages()
+        {
+            return  this.numberOfPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfPearls property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfPearls")]
+        public Decimal NumberOfPearls
+        {
+            get { return this.numberOfPearlsField.GetValueOrDefault() ; }
+            set { this.numberOfPearlsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfPearls property
+        /// </summary>
+        /// <param name="numberOfPearls">NumberOfPearls property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfPearls(Decimal numberOfPearls)
+        {
+            this.numberOfPearlsField = numberOfPearls;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfPearls property is set
+        /// </summary>
+        /// <returns>true if NumberOfPearls property is set</returns>
+        public Boolean IsSetNumberOfPearls()
+        {
+            return  this.numberOfPearlsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfRapidFireShots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfRapidFireShots")]
+        public Decimal NumberOfRapidFireShots
+        {
+            get { return this.numberOfRapidFireShotsField.GetValueOrDefault() ; }
+            set { this.numberOfRapidFireShotsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfRapidFireShots property
+        /// </summary>
+        /// <param name="numberOfRapidFireShots">NumberOfRapidFireShots property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfRapidFireShots(Decimal numberOfRapidFireShots)
+        {
+            this.numberOfRapidFireShotsField = numberOfRapidFireShots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfRapidFireShots property is set
+        /// </summary>
+        /// <returns>true if NumberOfRapidFireShots property is set</returns>
+        public Boolean IsSetNumberOfRapidFireShots()
+        {
+            return  this.numberOfRapidFireShotsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfStones property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfStones")]
+        public Decimal NumberOfStones
+        {
+            get { return this.numberOfStonesField.GetValueOrDefault() ; }
+            set { this.numberOfStonesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfStones property
+        /// </summary>
+        /// <param name="numberOfStones">NumberOfStones property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfStones(Decimal numberOfStones)
+        {
+            this.numberOfStonesField = numberOfStones;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfStones property is set
+        /// </summary>
+        /// <returns>true if NumberOfStones property is set</returns>
+        public Boolean IsSetNumberOfStones()
+        {
+            return  this.numberOfStonesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfStrings property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfStrings")]
+        public Decimal NumberOfStrings
+        {
+            get { return this.numberOfStringsField.GetValueOrDefault() ; }
+            set { this.numberOfStringsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfStrings property
+        /// </summary>
+        /// <param name="numberOfStrings">NumberOfStrings property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfStrings(Decimal numberOfStrings)
+        {
+            this.numberOfStringsField = numberOfStrings;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfStrings property is set
+        /// </summary>
+        /// <returns>true if NumberOfStrings property is set</returns>
+        public Boolean IsSetNumberOfStrings()
+        {
+            return  this.numberOfStringsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the NumberOfTracks property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NumberOfTracks")]
+        public Decimal NumberOfTracks
+        {
+            get { return this.numberOfTracksField.GetValueOrDefault() ; }
+            set { this.numberOfTracksField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NumberOfTracks property
+        /// </summary>
+        /// <param name="numberOfTracks">NumberOfTracks property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithNumberOfTracks(Decimal numberOfTracks)
+        {
+            this.numberOfTracksField = numberOfTracks;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NumberOfTracks property is set
+        /// </summary>
+        /// <returns>true if NumberOfTracks property is set</returns>
+        public Boolean IsSetNumberOfTracks()
+        {
+            return  this.numberOfTracksField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OpticalZoom property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OpticalZoom")]
+        public DecimalWithUnits OpticalZoom
+        {
+            get { return this.opticalZoomField ; }
+            set { this.opticalZoomField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OpticalZoom property
+        /// </summary>
+        /// <param name="opticalZoom">OpticalZoom property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithOpticalZoom(DecimalWithUnits opticalZoom)
+        {
+            this.opticalZoomField = opticalZoom;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OpticalZoom property is set
+        /// </summary>
+        /// <returns>true if OpticalZoom property is set</returns>
+        public Boolean IsSetOpticalZoom()
+        {
+            return this.opticalZoomField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OriginalReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OriginalReleaseDate")]
+        public String OriginalReleaseDate
+        {
+            get { return this.originalReleaseDateField ; }
+            set { this.originalReleaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OriginalReleaseDate property
+        /// </summary>
+        /// <param name="originalReleaseDate">OriginalReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithOriginalReleaseDate(String originalReleaseDate)
+        {
+            this.originalReleaseDateField = originalReleaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OriginalReleaseDate property is set
+        /// </summary>
+        /// <returns>true if OriginalReleaseDate property is set</returns>
+        public Boolean IsSetOriginalReleaseDate()
+        {
+            return  this.originalReleaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OutputWattage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OutputWattage")]
+        public Decimal OutputWattage
+        {
+            get { return this.outputWattageField.GetValueOrDefault() ; }
+            set { this.outputWattageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OutputWattage property
+        /// </summary>
+        /// <param name="outputWattage">OutputWattage property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithOutputWattage(Decimal outputWattage)
+        {
+            this.outputWattageField = outputWattage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OutputWattage property is set
+        /// </summary>
+        /// <returns>true if OutputWattage property is set</returns>
+        public Boolean IsSetOutputWattage()
+        {
+            return  this.outputWattageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PackageDimensions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PackageDimensions")]
+        public PackageDimensions PackageDimensions
+        {
+            get { return this.packageDimensionsField ; }
+            set { this.packageDimensionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PackageDimensions property
+        /// </summary>
+        /// <param name="packageDimensions">PackageDimensions property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPackageDimensions(PackageDimensions packageDimensions)
+        {
+            this.packageDimensionsField = packageDimensions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PackageDimensions property is set
+        /// </summary>
+        /// <returns>true if PackageDimensions property is set</returns>
+        public Boolean IsSetPackageDimensions()
+        {
+            return this.packageDimensionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PearlLustre property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlLustre")]
+        public String PearlLustre
+        {
+            get { return this.pearlLustreField ; }
+            set { this.pearlLustreField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlLustre property
+        /// </summary>
+        /// <param name="pearlLustre">PearlLustre property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlLustre(String pearlLustre)
+        {
+            this.pearlLustreField = pearlLustre;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlLustre property is set
+        /// </summary>
+        /// <returns>true if PearlLustre property is set</returns>
+        public Boolean IsSetPearlLustre()
+        {
+            return  this.pearlLustreField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlMinimumColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlMinimumColor")]
+        public String PearlMinimumColor
+        {
+            get { return this.pearlMinimumColorField ; }
+            set { this.pearlMinimumColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlMinimumColor property
+        /// </summary>
+        /// <param name="pearlMinimumColor">PearlMinimumColor property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlMinimumColor(String pearlMinimumColor)
+        {
+            this.pearlMinimumColorField = pearlMinimumColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlMinimumColor property is set
+        /// </summary>
+        /// <returns>true if PearlMinimumColor property is set</returns>
+        public Boolean IsSetPearlMinimumColor()
+        {
+            return  this.pearlMinimumColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlShape property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlShape")]
+        public String PearlShape
+        {
+            get { return this.pearlShapeField ; }
+            set { this.pearlShapeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlShape property
+        /// </summary>
+        /// <param name="pearlShape">PearlShape property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlShape(String pearlShape)
+        {
+            this.pearlShapeField = pearlShape;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlShape property is set
+        /// </summary>
+        /// <returns>true if PearlShape property is set</returns>
+        public Boolean IsSetPearlShape()
+        {
+            return  this.pearlShapeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlStringingMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlStringingMethod")]
+        public String PearlStringingMethod
+        {
+            get { return this.pearlStringingMethodField ; }
+            set { this.pearlStringingMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlStringingMethod property
+        /// </summary>
+        /// <param name="pearlStringingMethod">PearlStringingMethod property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlStringingMethod(String pearlStringingMethod)
+        {
+            this.pearlStringingMethodField = pearlStringingMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlStringingMethod property is set
+        /// </summary>
+        /// <returns>true if PearlStringingMethod property is set</returns>
+        public Boolean IsSetPearlStringingMethod()
+        {
+            return  this.pearlStringingMethodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlSurfaceBlemishes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlSurfaceBlemishes")]
+        public String PearlSurfaceBlemishes
+        {
+            get { return this.pearlSurfaceBlemishesField ; }
+            set { this.pearlSurfaceBlemishesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlSurfaceBlemishes property
+        /// </summary>
+        /// <param name="pearlSurfaceBlemishes">PearlSurfaceBlemishes property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlSurfaceBlemishes(String pearlSurfaceBlemishes)
+        {
+            this.pearlSurfaceBlemishesField = pearlSurfaceBlemishes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlSurfaceBlemishes property is set
+        /// </summary>
+        /// <returns>true if PearlSurfaceBlemishes property is set</returns>
+        public Boolean IsSetPearlSurfaceBlemishes()
+        {
+            return  this.pearlSurfaceBlemishesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlType")]
+        public String PearlType
+        {
+            get { return this.pearlTypeField ; }
+            set { this.pearlTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlType property
+        /// </summary>
+        /// <param name="pearlType">PearlType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlType(String pearlType)
+        {
+            this.pearlTypeField = pearlType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlType property is set
+        /// </summary>
+        /// <returns>true if PearlType property is set</returns>
+        public Boolean IsSetPearlType()
+        {
+            return  this.pearlTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PearlUniformity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PearlUniformity")]
+        public String PearlUniformity
+        {
+            get { return this.pearlUniformityField ; }
+            set { this.pearlUniformityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PearlUniformity property
+        /// </summary>
+        /// <param name="pearlUniformity">PearlUniformity property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPearlUniformity(String pearlUniformity)
+        {
+            this.pearlUniformityField = pearlUniformity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PearlUniformity property is set
+        /// </summary>
+        /// <returns>true if PearlUniformity property is set</returns>
+        public Boolean IsSetPearlUniformity()
+        {
+            return  this.pearlUniformityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PhoneNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PhoneNumber")]
+        public String PhoneNumber
+        {
+            get { return this.phoneNumberField ; }
+            set { this.phoneNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PhoneNumber property
+        /// </summary>
+        /// <param name="phoneNumber">PhoneNumber property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPhoneNumber(String phoneNumber)
+        {
+            this.phoneNumberField = phoneNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PhoneNumber property is set
+        /// </summary>
+        /// <returns>true if PhoneNumber property is set</returns>
+        public Boolean IsSetPhoneNumber()
+        {
+            return  this.phoneNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PhotoFlashType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PhotoFlashType")]
+        public List<String> PhotoFlashType
+        {
+            get
+            {
+                if (this.photoFlashTypeField == null)
+                {
+                    this.photoFlashTypeField = new List<String>();
+                }
+                return this.photoFlashTypeField;
+            }
+            set { this.photoFlashTypeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PhotoFlashType property
+        /// </summary>
+        /// <param name="list">PhotoFlashType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPhotoFlashType(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PhotoFlashType.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PhotoFlashType property is set
+        /// </summary>
+        /// <returns>true if PhotoFlashType property is set</returns>
+        public Boolean IsSetPhotoFlashType()
+        {
+            return (PhotoFlashType.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PictureFormat property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PictureFormat")]
+        public List<String> PictureFormat
+        {
+            get
+            {
+                if (this.pictureFormatField == null)
+                {
+                    this.pictureFormatField = new List<String>();
+                }
+                return this.pictureFormatField;
+            }
+            set { this.pictureFormatField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PictureFormat property
+        /// </summary>
+        /// <param name="list">PictureFormat property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPictureFormat(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PictureFormat.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PictureFormat property is set
+        /// </summary>
+        /// <returns>true if PictureFormat property is set</returns>
+        public Boolean IsSetPictureFormat()
+        {
+            return (PictureFormat.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Platform property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Platform")]
+        public List<String> Platform
+        {
+            get
+            {
+                if (this.platformField == null)
+                {
+                    this.platformField = new List<String>();
+                }
+                return this.platformField;
+            }
+            set { this.platformField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Platform property
+        /// </summary>
+        /// <param name="list">Platform property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPlatform(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Platform.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Platform property is set
+        /// </summary>
+        /// <returns>true if Platform property is set</returns>
+        public Boolean IsSetPlatform()
+        {
+            return (Platform.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PriceRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PriceRating")]
+        public Decimal PriceRating
+        {
+            get { return this.priceRatingField.GetValueOrDefault() ; }
+            set { this.priceRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PriceRating property
+        /// </summary>
+        /// <param name="priceRating">PriceRating property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPriceRating(Decimal priceRating)
+        {
+            this.priceRatingField = priceRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PriceRating property is set
+        /// </summary>
+        /// <returns>true if PriceRating property is set</returns>
+        public Boolean IsSetPriceRating()
+        {
+            return  this.priceRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProcessorCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProcessorCount")]
+        public Decimal ProcessorCount
+        {
+            get { return this.processorCountField.GetValueOrDefault() ; }
+            set { this.processorCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProcessorCount property
+        /// </summary>
+        /// <param name="processorCount">ProcessorCount property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithProcessorCount(Decimal processorCount)
+        {
+            this.processorCountField = processorCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProcessorCount property is set
+        /// </summary>
+        /// <returns>true if ProcessorCount property is set</returns>
+        public Boolean IsSetProcessorCount()
+        {
+            return  this.processorCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ProductGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ProductGroup")]
+        public String ProductGroup
+        {
+            get { return this.productGroupField ; }
+            set { this.productGroupField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ProductGroup property
+        /// </summary>
+        /// <param name="productGroup">ProductGroup property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithProductGroup(String productGroup)
+        {
+            this.productGroupField = productGroup;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ProductGroup property is set
+        /// </summary>
+        /// <returns>true if ProductGroup property is set</returns>
+        public Boolean IsSetProductGroup()
+        {
+            return  this.productGroupField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PromotionalTag property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PromotionalTag")]
+        public String PromotionalTag
+        {
+            get { return this.promotionalTagField ; }
+            set { this.promotionalTagField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PromotionalTag property
+        /// </summary>
+        /// <param name="promotionalTag">PromotionalTag property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPromotionalTag(String promotionalTag)
+        {
+            this.promotionalTagField = promotionalTag;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PromotionalTag property is set
+        /// </summary>
+        /// <returns>true if PromotionalTag property is set</returns>
+        public Boolean IsSetPromotionalTag()
+        {
+            return  this.promotionalTagField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the POBoxShippingExcluded property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "POBoxShippingExcluded")]
+        public String POBoxShippingExcluded
+        {
+            get { return this.POBoxShippingExcludedField ; }
+            set { this.POBoxShippingExcludedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the POBoxShippingExcluded property
+        /// </summary>
+        /// <param name="POBoxShippingExcluded">POBoxShippingExcluded property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPOBoxShippingExcluded(String POBoxShippingExcluded)
+        {
+            this.POBoxShippingExcludedField = POBoxShippingExcluded;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if POBoxShippingExcluded property is set
+        /// </summary>
+        /// <returns>true if POBoxShippingExcluded property is set</returns>
+        public Boolean IsSetPOBoxShippingExcluded()
+        {
+            return  this.POBoxShippingExcludedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PublicationDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PublicationDate")]
+        public String PublicationDate
+        {
+            get { return this.publicationDateField ; }
+            set { this.publicationDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PublicationDate property
+        /// </summary>
+        /// <param name="publicationDate">PublicationDate property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPublicationDate(String publicationDate)
+        {
+            this.publicationDateField = publicationDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PublicationDate property is set
+        /// </summary>
+        /// <returns>true if PublicationDate property is set</returns>
+        public Boolean IsSetPublicationDate()
+        {
+            return  this.publicationDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Publisher property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Publisher")]
+        public String Publisher
+        {
+            get { return this.publisherField ; }
+            set { this.publisherField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Publisher property
+        /// </summary>
+        /// <param name="publisher">Publisher property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPublisher(String publisher)
+        {
+            this.publisherField = publisher;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Publisher property is set
+        /// </summary>
+        /// <returns>true if Publisher property is set</returns>
+        public Boolean IsSetPublisher()
+        {
+            return  this.publisherField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PurchasingChannel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PurchasingChannel")]
+        public List<String> PurchasingChannel
+        {
+            get
+            {
+                if (this.purchasingChannelField == null)
+                {
+                    this.purchasingChannelField = new List<String>();
+                }
+                return this.purchasingChannelField;
+            }
+            set { this.purchasingChannelField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PurchasingChannel property
+        /// </summary>
+        /// <param name="list">PurchasingChannel property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithPurchasingChannel(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                PurchasingChannel.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of PurchasingChannel property is set
+        /// </summary>
+        /// <returns>true if PurchasingChannel property is set</returns>
+        public Boolean IsSetPurchasingChannel()
+        {
+            return (PurchasingChannel.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReadingLevel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReadingLevel")]
+        public String ReadingLevel
+        {
+            get { return this.readingLevelField ; }
+            set { this.readingLevelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReadingLevel property
+        /// </summary>
+        /// <param name="readingLevel">ReadingLevel property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithReadingLevel(String readingLevel)
+        {
+            this.readingLevelField = readingLevel;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReadingLevel property is set
+        /// </summary>
+        /// <returns>true if ReadingLevel property is set</returns>
+        public Boolean IsSetReadingLevel()
+        {
+            return  this.readingLevelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RecorderTrackCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RecorderTrackCount")]
+        public Decimal RecorderTrackCount
+        {
+            get { return this.recorderTrackCountField.GetValueOrDefault() ; }
+            set { this.recorderTrackCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RecorderTrackCount property
+        /// </summary>
+        /// <param name="recorderTrackCount">RecorderTrackCount property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithRecorderTrackCount(Decimal recorderTrackCount)
+        {
+            this.recorderTrackCountField = recorderTrackCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RecorderTrackCount property is set
+        /// </summary>
+        /// <returns>true if RecorderTrackCount property is set</returns>
+        public Boolean IsSetRecorderTrackCount()
+        {
+            return  this.recorderTrackCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RegionCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RegionCode")]
+        public String RegionCode
+        {
+            get { return this.regionCodeField ; }
+            set { this.regionCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RegionCode property
+        /// </summary>
+        /// <param name="regionCode">RegionCode property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithRegionCode(String regionCode)
+        {
+            this.regionCodeField = regionCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RegionCode property is set
+        /// </summary>
+        /// <returns>true if RegionCode property is set</returns>
+        public Boolean IsSetRegionCode()
+        {
+            return  this.regionCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RegionOfOrigin property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RegionOfOrigin")]
+        public String RegionOfOrigin
+        {
+            get { return this.regionOfOriginField ; }
+            set { this.regionOfOriginField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RegionOfOrigin property
+        /// </summary>
+        /// <param name="regionOfOrigin">RegionOfOrigin property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithRegionOfOrigin(String regionOfOrigin)
+        {
+            this.regionOfOriginField = regionOfOrigin;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RegionOfOrigin property is set
+        /// </summary>
+        /// <returns>true if RegionOfOrigin property is set</returns>
+        public Boolean IsSetRegionOfOrigin()
+        {
+            return  this.regionOfOriginField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReleaseDate")]
+        public String ReleaseDate
+        {
+            get { return this.releaseDateField ; }
+            set { this.releaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReleaseDate property
+        /// </summary>
+        /// <param name="releaseDate">ReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithReleaseDate(String releaseDate)
+        {
+            this.releaseDateField = releaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReleaseDate property is set
+        /// </summary>
+        /// <returns>true if ReleaseDate property is set</returns>
+        public Boolean IsSetReleaseDate()
+        {
+            return  this.releaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReturnMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReturnMethod")]
+        public List<String> ReturnMethod
+        {
+            get
+            {
+                if (this.returnMethodField == null)
+                {
+                    this.returnMethodField = new List<String>();
+                }
+                return this.returnMethodField;
+            }
+            set { this.returnMethodField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReturnMethod property
+        /// </summary>
+        /// <param name="list">ReturnMethod property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithReturnMethod(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ReturnMethod.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ReturnMethod property is set
+        /// </summary>
+        /// <returns>true if ReturnMethod property is set</returns>
+        public Boolean IsSetReturnMethod()
+        {
+            return (ReturnMethod.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the RemovableMemory property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RemovableMemory")]
+        public String RemovableMemory
+        {
+            get { return this.removableMemoryField ; }
+            set { this.removableMemoryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RemovableMemory property
+        /// </summary>
+        /// <param name="removableMemory">RemovableMemory property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithRemovableMemory(String removableMemory)
+        {
+            this.removableMemoryField = removableMemory;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RemovableMemory property is set
+        /// </summary>
+        /// <returns>true if RemovableMemory property is set</returns>
+        public Boolean IsSetRemovableMemory()
+        {
+            return  this.removableMemoryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResolutionModes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResolutionModes")]
+        public String ResolutionModes
+        {
+            get { return this.resolutionModesField ; }
+            set { this.resolutionModesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResolutionModes property
+        /// </summary>
+        /// <param name="resolutionModes">ResolutionModes property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithResolutionModes(String resolutionModes)
+        {
+            this.resolutionModesField = resolutionModes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ResolutionModes property is set
+        /// </summary>
+        /// <returns>true if ResolutionModes property is set</returns>
+        public Boolean IsSetResolutionModes()
+        {
+            return  this.resolutionModesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ReturnPolicy property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReturnPolicy")]
+        public String ReturnPolicy
+        {
+            get { return this.returnPolicyField ; }
+            set { this.returnPolicyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReturnPolicy property
+        /// </summary>
+        /// <param name="returnPolicy">ReturnPolicy property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithReturnPolicy(String returnPolicy)
+        {
+            this.returnPolicyField = returnPolicy;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReturnPolicy property is set
+        /// </summary>
+        /// <returns>true if ReturnPolicy property is set</returns>
+        public Boolean IsSetReturnPolicy()
+        {
+            return  this.returnPolicyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RingSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RingSize")]
+        public String RingSize
+        {
+            get { return this.ringSizeField ; }
+            set { this.ringSizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RingSize property
+        /// </summary>
+        /// <param name="ringSize">RingSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithRingSize(String ringSize)
+        {
+            this.ringSizeField = ringSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RingSize property is set
+        /// </summary>
+        /// <returns>true if RingSize property is set</returns>
+        public Boolean IsSetRingSize()
+        {
+            return  this.ringSizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SafetyWarning property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SafetyWarning")]
+        public String SafetyWarning
+        {
+            get { return this.safetyWarningField ; }
+            set { this.safetyWarningField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SafetyWarning property
+        /// </summary>
+        /// <param name="safetyWarning">SafetyWarning property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSafetyWarning(String safetyWarning)
+        {
+            this.safetyWarningField = safetyWarning;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SafetyWarning property is set
+        /// </summary>
+        /// <returns>true if SafetyWarning property is set</returns>
+        public Boolean IsSetSafetyWarning()
+        {
+            return  this.safetyWarningField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SalesRestriction property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SalesRestriction")]
+        public String SalesRestriction
+        {
+            get { return this.salesRestrictionField ; }
+            set { this.salesRestrictionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SalesRestriction property
+        /// </summary>
+        /// <param name="salesRestriction">SalesRestriction property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSalesRestriction(String salesRestriction)
+        {
+            this.salesRestrictionField = salesRestriction;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SalesRestriction property is set
+        /// </summary>
+        /// <returns>true if SalesRestriction property is set</returns>
+        public Boolean IsSetSalesRestriction()
+        {
+            return  this.salesRestrictionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SecondaryCacheSize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SecondaryCacheSize")]
+        public NonNegativeIntegerWithUnits SecondaryCacheSize
+        {
+            get { return this.secondaryCacheSizeField ; }
+            set { this.secondaryCacheSizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SecondaryCacheSize property
+        /// </summary>
+        /// <param name="secondaryCacheSize">SecondaryCacheSize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSecondaryCacheSize(NonNegativeIntegerWithUnits secondaryCacheSize)
+        {
+            this.secondaryCacheSizeField = secondaryCacheSize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SecondaryCacheSize property is set
+        /// </summary>
+        /// <returns>true if SecondaryCacheSize property is set</returns>
+        public Boolean IsSetSecondaryCacheSize()
+        {
+            return this.secondaryCacheSizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SettingType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SettingType")]
+        public String SettingType
+        {
+            get { return this.settingTypeField ; }
+            set { this.settingTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SettingType property
+        /// </summary>
+        /// <param name="settingType">SettingType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSettingType(String settingType)
+        {
+            this.settingTypeField = settingType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SettingType property is set
+        /// </summary>
+        /// <returns>true if SettingType property is set</returns>
+        public Boolean IsSetSettingType()
+        {
+            return  this.settingTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Size property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Size")]
+        public String Size
+        {
+            get { return this.sizeField ; }
+            set { this.sizeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Size property
+        /// </summary>
+        /// <param name="size">Size property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSize(String size)
+        {
+            this.sizeField = size;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Size property is set
+        /// </summary>
+        /// <returns>true if Size property is set</returns>
+        public Boolean IsSetSize()
+        {
+            return  this.sizeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SKU property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SKU")]
+        public String SKU
+        {
+            get { return this.SKUField ; }
+            set { this.SKUField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SKU property
+        /// </summary>
+        /// <param name="SKU">SKU property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSKU(String SKU)
+        {
+            this.SKUField = SKU;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SKU property is set
+        /// </summary>
+        /// <returns>true if SKU property is set</returns>
+        public Boolean IsSetSKU()
+        {
+            return  this.SKUField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SoldInStores property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SoldInStores")]
+        public String SoldInStores
+        {
+            get { return this.soldInStoresField ; }
+            set { this.soldInStoresField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SoldInStores property
+        /// </summary>
+        /// <param name="soldInStores">SoldInStores property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSoldInStores(String soldInStores)
+        {
+            this.soldInStoresField = soldInStores;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SoldInStores property is set
+        /// </summary>
+        /// <returns>true if SoldInStores property is set</returns>
+        public Boolean IsSetSoldInStores()
+        {
+            return  this.soldInStoresField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SizePerPearl property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SizePerPearl")]
+        public String SizePerPearl
+        {
+            get { return this.sizePerPearlField ; }
+            set { this.sizePerPearlField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SizePerPearl property
+        /// </summary>
+        /// <param name="sizePerPearl">SizePerPearl property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSizePerPearl(String sizePerPearl)
+        {
+            this.sizePerPearlField = sizePerPearl;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SizePerPearl property is set
+        /// </summary>
+        /// <returns>true if SizePerPearl property is set</returns>
+        public Boolean IsSetSizePerPearl()
+        {
+            return  this.sizePerPearlField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SkillLevel property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SkillLevel")]
+        public String SkillLevel
+        {
+            get { return this.skillLevelField ; }
+            set { this.skillLevelField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SkillLevel property
+        /// </summary>
+        /// <param name="skillLevel">SkillLevel property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSkillLevel(String skillLevel)
+        {
+            this.skillLevelField = skillLevel;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SkillLevel property is set
+        /// </summary>
+        /// <returns>true if SkillLevel property is set</returns>
+        public Boolean IsSetSkillLevel()
+        {
+            return  this.skillLevelField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SoundCardDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SoundCardDescription")]
+        public String SoundCardDescription
+        {
+            get { return this.soundCardDescriptionField ; }
+            set { this.soundCardDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SoundCardDescription property
+        /// </summary>
+        /// <param name="soundCardDescription">SoundCardDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSoundCardDescription(String soundCardDescription)
+        {
+            this.soundCardDescriptionField = soundCardDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SoundCardDescription property is set
+        /// </summary>
+        /// <returns>true if SoundCardDescription property is set</returns>
+        public Boolean IsSetSoundCardDescription()
+        {
+            return  this.soundCardDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpeakerCount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpeakerCount")]
+        public Decimal SpeakerCount
+        {
+            get { return this.speakerCountField.GetValueOrDefault() ; }
+            set { this.speakerCountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpeakerCount property
+        /// </summary>
+        /// <param name="speakerCount">SpeakerCount property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSpeakerCount(Decimal speakerCount)
+        {
+            this.speakerCountField = speakerCount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SpeakerCount property is set
+        /// </summary>
+        /// <returns>true if SpeakerCount property is set</returns>
+        public Boolean IsSetSpeakerCount()
+        {
+            return  this.speakerCountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpeakerDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpeakerDescription")]
+        public String SpeakerDescription
+        {
+            get { return this.speakerDescriptionField ; }
+            set { this.speakerDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpeakerDescription property
+        /// </summary>
+        /// <param name="speakerDescription">SpeakerDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSpeakerDescription(String speakerDescription)
+        {
+            this.speakerDescriptionField = speakerDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SpeakerDescription property is set
+        /// </summary>
+        /// <returns>true if SpeakerDescription property is set</returns>
+        public Boolean IsSetSpeakerDescription()
+        {
+            return  this.speakerDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SpecialFeatures property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SpecialFeatures")]
+        public List<String> SpecialFeatures
+        {
+            get
+            {
+                if (this.specialFeaturesField == null)
+                {
+                    this.specialFeaturesField = new List<String>();
+                }
+                return this.specialFeaturesField;
+            }
+            set { this.specialFeaturesField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SpecialFeatures property
+        /// </summary>
+        /// <param name="list">SpecialFeatures property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSpecialFeatures(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                SpecialFeatures.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of SpecialFeatures property is set
+        /// </summary>
+        /// <returns>true if SpecialFeatures property is set</returns>
+        public Boolean IsSetSpecialFeatures()
+        {
+            return (SpecialFeatures.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the StoneClarity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneClarity")]
+        public String StoneClarity
+        {
+            get { return this.stoneClarityField ; }
+            set { this.stoneClarityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneClarity property
+        /// </summary>
+        /// <param name="stoneClarity">StoneClarity property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStoneClarity(String stoneClarity)
+        {
+            this.stoneClarityField = stoneClarity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneClarity property is set
+        /// </summary>
+        /// <returns>true if StoneClarity property is set</returns>
+        public Boolean IsSetStoneClarity()
+        {
+            return  this.stoneClarityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneColor property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneColor")]
+        public String StoneColor
+        {
+            get { return this.stoneColorField ; }
+            set { this.stoneColorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneColor property
+        /// </summary>
+        /// <param name="stoneColor">StoneColor property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStoneColor(String stoneColor)
+        {
+            this.stoneColorField = stoneColor;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneColor property is set
+        /// </summary>
+        /// <returns>true if StoneColor property is set</returns>
+        public Boolean IsSetStoneColor()
+        {
+            return  this.stoneColorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneCut property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneCut")]
+        public String StoneCut
+        {
+            get { return this.stoneCutField ; }
+            set { this.stoneCutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneCut property
+        /// </summary>
+        /// <param name="stoneCut">StoneCut property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStoneCut(String stoneCut)
+        {
+            this.stoneCutField = stoneCut;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneCut property is set
+        /// </summary>
+        /// <returns>true if StoneCut property is set</returns>
+        public Boolean IsSetStoneCut()
+        {
+            return  this.stoneCutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneShape property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneShape")]
+        public String StoneShape
+        {
+            get { return this.stoneShapeField ; }
+            set { this.stoneShapeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneShape property
+        /// </summary>
+        /// <param name="stoneShape">StoneShape property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStoneShape(String stoneShape)
+        {
+            this.stoneShapeField = stoneShape;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneShape property is set
+        /// </summary>
+        /// <returns>true if StoneShape property is set</returns>
+        public Boolean IsSetStoneShape()
+        {
+            return  this.stoneShapeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StoneWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StoneWeight")]
+        public DecimalWithUnits StoneWeight
+        {
+            get { return this.stoneWeightField ; }
+            set { this.stoneWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StoneWeight property
+        /// </summary>
+        /// <param name="stoneWeight">StoneWeight property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStoneWeight(DecimalWithUnits stoneWeight)
+        {
+            this.stoneWeightField = stoneWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StoneWeight property is set
+        /// </summary>
+        /// <returns>true if StoneWeight property is set</returns>
+        public Boolean IsSetStoneWeight()
+        {
+            return this.stoneWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Studio property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Studio")]
+        public String Studio
+        {
+            get { return this.studioField ; }
+            set { this.studioField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Studio property
+        /// </summary>
+        /// <param name="studio">Studio property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithStudio(String studio)
+        {
+            this.studioField = studio;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Studio property is set
+        /// </summary>
+        /// <returns>true if Studio property is set</returns>
+        public Boolean IsSetStudio()
+        {
+            return  this.studioField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SubscriptionLength property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubscriptionLength")]
+        public NonNegativeIntegerWithUnits SubscriptionLength
+        {
+            get { return this.subscriptionLengthField ; }
+            set { this.subscriptionLengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubscriptionLength property
+        /// </summary>
+        /// <param name="subscriptionLength">SubscriptionLength property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSubscriptionLength(NonNegativeIntegerWithUnits subscriptionLength)
+        {
+            this.subscriptionLengthField = subscriptionLength;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubscriptionLength property is set
+        /// </summary>
+        /// <returns>true if SubscriptionLength property is set</returns>
+        public Boolean IsSetSubscriptionLength()
+        {
+            return this.subscriptionLengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SupportedImageType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SupportedImageType")]
+        public List<String> SupportedImageType
+        {
+            get
+            {
+                if (this.supportedImageTypeField == null)
+                {
+                    this.supportedImageTypeField = new List<String>();
+                }
+                return this.supportedImageTypeField;
+            }
+            set { this.supportedImageTypeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SupportedImageType property
+        /// </summary>
+        /// <param name="list">SupportedImageType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSupportedImageType(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                SupportedImageType.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of SupportedImageType property is set
+        /// </summary>
+        /// <returns>true if SupportedImageType property is set</returns>
+        public Boolean IsSetSupportedImageType()
+        {
+            return (SupportedImageType.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemBusSpeed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemBusSpeed")]
+        public DecimalWithUnits SystemBusSpeed
+        {
+            get { return this.systemBusSpeedField ; }
+            set { this.systemBusSpeedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemBusSpeed property
+        /// </summary>
+        /// <param name="systemBusSpeed">SystemBusSpeed property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSystemBusSpeed(DecimalWithUnits systemBusSpeed)
+        {
+            this.systemBusSpeedField = systemBusSpeed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemBusSpeed property is set
+        /// </summary>
+        /// <returns>true if SystemBusSpeed property is set</returns>
+        public Boolean IsSetSystemBusSpeed()
+        {
+            return this.systemBusSpeedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemorySizeMax property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemorySizeMax")]
+        public DecimalWithUnits SystemMemorySizeMax
+        {
+            get { return this.systemMemorySizeMaxField ; }
+            set { this.systemMemorySizeMaxField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemorySizeMax property
+        /// </summary>
+        /// <param name="systemMemorySizeMax">SystemMemorySizeMax property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSystemMemorySizeMax(DecimalWithUnits systemMemorySizeMax)
+        {
+            this.systemMemorySizeMaxField = systemMemorySizeMax;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemorySizeMax property is set
+        /// </summary>
+        /// <returns>true if SystemMemorySizeMax property is set</returns>
+        public Boolean IsSetSystemMemorySizeMax()
+        {
+            return this.systemMemorySizeMaxField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemorySize property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemorySize")]
+        public DecimalWithUnits SystemMemorySize
+        {
+            get { return this.systemMemorySizeField ; }
+            set { this.systemMemorySizeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemorySize property
+        /// </summary>
+        /// <param name="systemMemorySize">SystemMemorySize property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSystemMemorySize(DecimalWithUnits systemMemorySize)
+        {
+            this.systemMemorySizeField = systemMemorySize;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemorySize property is set
+        /// </summary>
+        /// <returns>true if SystemMemorySize property is set</returns>
+        public Boolean IsSetSystemMemorySize()
+        {
+            return this.systemMemorySizeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SystemMemoryType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SystemMemoryType")]
+        public String SystemMemoryType
+        {
+            get { return this.systemMemoryTypeField ; }
+            set { this.systemMemoryTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SystemMemoryType property
+        /// </summary>
+        /// <param name="systemMemoryType">SystemMemoryType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithSystemMemoryType(String systemMemoryType)
+        {
+            this.systemMemoryTypeField = systemMemoryType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SystemMemoryType property is set
+        /// </summary>
+        /// <returns>true if SystemMemoryType property is set</returns>
+        public Boolean IsSetSystemMemoryType()
+        {
+            return  this.systemMemoryTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TellingPageIndicator property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TellingPageIndicator")]
+        public String TellingPageIndicator
+        {
+            get { return this.tellingPageIndicatorField ; }
+            set { this.tellingPageIndicatorField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TellingPageIndicator property
+        /// </summary>
+        /// <param name="tellingPageIndicator">TellingPageIndicator property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTellingPageIndicator(String tellingPageIndicator)
+        {
+            this.tellingPageIndicatorField = tellingPageIndicator;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TellingPageIndicator property is set
+        /// </summary>
+        /// <returns>true if TellingPageIndicator property is set</returns>
+        public Boolean IsSetTellingPageIndicator()
+        {
+            return  this.tellingPageIndicatorField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TheatricalReleaseDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TheatricalReleaseDate")]
+        public String TheatricalReleaseDate
+        {
+            get { return this.theatricalReleaseDateField ; }
+            set { this.theatricalReleaseDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TheatricalReleaseDate property
+        /// </summary>
+        /// <param name="theatricalReleaseDate">TheatricalReleaseDate property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTheatricalReleaseDate(String theatricalReleaseDate)
+        {
+            this.theatricalReleaseDateField = theatricalReleaseDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TheatricalReleaseDate property is set
+        /// </summary>
+        /// <returns>true if TheatricalReleaseDate property is set</returns>
+        public Boolean IsSetTheatricalReleaseDate()
+        {
+            return  this.theatricalReleaseDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalDiamondWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalDiamondWeight")]
+        public DecimalWithUnits TotalDiamondWeight
+        {
+            get { return this.totalDiamondWeightField ; }
+            set { this.totalDiamondWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalDiamondWeight property
+        /// </summary>
+        /// <param name="totalDiamondWeight">TotalDiamondWeight property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalDiamondWeight(DecimalWithUnits totalDiamondWeight)
+        {
+            this.totalDiamondWeightField = totalDiamondWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalDiamondWeight property is set
+        /// </summary>
+        /// <returns>true if TotalDiamondWeight property is set</returns>
+        public Boolean IsSetTotalDiamondWeight()
+        {
+            return this.totalDiamondWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalExternalBaysFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalExternalBaysFree")]
+        public Decimal TotalExternalBaysFree
+        {
+            get { return this.totalExternalBaysFreeField.GetValueOrDefault() ; }
+            set { this.totalExternalBaysFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalExternalBaysFree property
+        /// </summary>
+        /// <param name="totalExternalBaysFree">TotalExternalBaysFree property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalExternalBaysFree(Decimal totalExternalBaysFree)
+        {
+            this.totalExternalBaysFreeField = totalExternalBaysFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalExternalBaysFree property is set
+        /// </summary>
+        /// <returns>true if TotalExternalBaysFree property is set</returns>
+        public Boolean IsSetTotalExternalBaysFree()
+        {
+            return  this.totalExternalBaysFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFirewirePorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFirewirePorts")]
+        public Decimal TotalFirewirePorts
+        {
+            get { return this.totalFirewirePortsField.GetValueOrDefault() ; }
+            set { this.totalFirewirePortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFirewirePorts property
+        /// </summary>
+        /// <param name="totalFirewirePorts">TotalFirewirePorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalFirewirePorts(Decimal totalFirewirePorts)
+        {
+            this.totalFirewirePortsField = totalFirewirePorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFirewirePorts property is set
+        /// </summary>
+        /// <returns>true if TotalFirewirePorts property is set</returns>
+        public Boolean IsSetTotalFirewirePorts()
+        {
+            return  this.totalFirewirePortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalGemWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalGemWeight")]
+        public DecimalWithUnits TotalGemWeight
+        {
+            get { return this.totalGemWeightField ; }
+            set { this.totalGemWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalGemWeight property
+        /// </summary>
+        /// <param name="totalGemWeight">TotalGemWeight property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalGemWeight(DecimalWithUnits totalGemWeight)
+        {
+            this.totalGemWeightField = totalGemWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalGemWeight property is set
+        /// </summary>
+        /// <returns>true if TotalGemWeight property is set</returns>
+        public Boolean IsSetTotalGemWeight()
+        {
+            return this.totalGemWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalInternalBaysFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalInternalBaysFree")]
+        public Decimal TotalInternalBaysFree
+        {
+            get { return this.totalInternalBaysFreeField.GetValueOrDefault() ; }
+            set { this.totalInternalBaysFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalInternalBaysFree property
+        /// </summary>
+        /// <param name="totalInternalBaysFree">TotalInternalBaysFree property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalInternalBaysFree(Decimal totalInternalBaysFree)
+        {
+            this.totalInternalBaysFreeField = totalInternalBaysFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalInternalBaysFree property is set
+        /// </summary>
+        /// <returns>true if TotalInternalBaysFree property is set</returns>
+        public Boolean IsSetTotalInternalBaysFree()
+        {
+            return  this.totalInternalBaysFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalMetalWeight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalMetalWeight")]
+        public DecimalWithUnits TotalMetalWeight
+        {
+            get { return this.totalMetalWeightField ; }
+            set { this.totalMetalWeightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalMetalWeight property
+        /// </summary>
+        /// <param name="totalMetalWeight">TotalMetalWeight property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalMetalWeight(DecimalWithUnits totalMetalWeight)
+        {
+            this.totalMetalWeightField = totalMetalWeight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalMetalWeight property is set
+        /// </summary>
+        /// <returns>true if TotalMetalWeight property is set</returns>
+        public Boolean IsSetTotalMetalWeight()
+        {
+            return this.totalMetalWeightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalNTSCPALPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalNTSCPALPorts")]
+        public Decimal TotalNTSCPALPorts
+        {
+            get { return this.totalNTSCPALPortsField.GetValueOrDefault() ; }
+            set { this.totalNTSCPALPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalNTSCPALPorts property
+        /// </summary>
+        /// <param name="totalNTSCPALPorts">TotalNTSCPALPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalNTSCPALPorts(Decimal totalNTSCPALPorts)
+        {
+            this.totalNTSCPALPortsField = totalNTSCPALPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalNTSCPALPorts property is set
+        /// </summary>
+        /// <returns>true if TotalNTSCPALPorts property is set</returns>
+        public Boolean IsSetTotalNTSCPALPorts()
+        {
+            return  this.totalNTSCPALPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalParallelPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalParallelPorts")]
+        public Decimal TotalParallelPorts
+        {
+            get { return this.totalParallelPortsField.GetValueOrDefault() ; }
+            set { this.totalParallelPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalParallelPorts property
+        /// </summary>
+        /// <param name="totalParallelPorts">TotalParallelPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalParallelPorts(Decimal totalParallelPorts)
+        {
+            this.totalParallelPortsField = totalParallelPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalParallelPorts property is set
+        /// </summary>
+        /// <returns>true if TotalParallelPorts property is set</returns>
+        public Boolean IsSetTotalParallelPorts()
+        {
+            return  this.totalParallelPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPCCardSlots property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPCCardSlots")]
+        public Decimal TotalPCCardSlots
+        {
+            get { return this.totalPCCardSlotsField.GetValueOrDefault() ; }
+            set { this.totalPCCardSlotsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPCCardSlots property
+        /// </summary>
+        /// <param name="totalPCCardSlots">TotalPCCardSlots property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalPCCardSlots(Decimal totalPCCardSlots)
+        {
+            this.totalPCCardSlotsField = totalPCCardSlots;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPCCardSlots property is set
+        /// </summary>
+        /// <returns>true if TotalPCCardSlots property is set</returns>
+        public Boolean IsSetTotalPCCardSlots()
+        {
+            return  this.totalPCCardSlotsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPCISlotsFree property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPCISlotsFree")]
+        public Decimal TotalPCISlotsFree
+        {
+            get { return this.totalPCISlotsFreeField.GetValueOrDefault() ; }
+            set { this.totalPCISlotsFreeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPCISlotsFree property
+        /// </summary>
+        /// <param name="totalPCISlotsFree">TotalPCISlotsFree property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalPCISlotsFree(Decimal totalPCISlotsFree)
+        {
+            this.totalPCISlotsFreeField = totalPCISlotsFree;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPCISlotsFree property is set
+        /// </summary>
+        /// <returns>true if TotalPCISlotsFree property is set</returns>
+        public Boolean IsSetTotalPCISlotsFree()
+        {
+            return  this.totalPCISlotsFreeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalSerialPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalSerialPorts")]
+        public Decimal TotalSerialPorts
+        {
+            get { return this.totalSerialPortsField.GetValueOrDefault() ; }
+            set { this.totalSerialPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalSerialPorts property
+        /// </summary>
+        /// <param name="totalSerialPorts">TotalSerialPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalSerialPorts(Decimal totalSerialPorts)
+        {
+            this.totalSerialPortsField = totalSerialPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalSerialPorts property is set
+        /// </summary>
+        /// <returns>true if TotalSerialPorts property is set</returns>
+        public Boolean IsSetTotalSerialPorts()
+        {
+            return  this.totalSerialPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalSVideoOutPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalSVideoOutPorts")]
+        public Decimal TotalSVideoOutPorts
+        {
+            get { return this.totalSVideoOutPortsField.GetValueOrDefault() ; }
+            set { this.totalSVideoOutPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalSVideoOutPorts property
+        /// </summary>
+        /// <param name="totalSVideoOutPorts">TotalSVideoOutPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalSVideoOutPorts(Decimal totalSVideoOutPorts)
+        {
+            this.totalSVideoOutPortsField = totalSVideoOutPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalSVideoOutPorts property is set
+        /// </summary>
+        /// <returns>true if TotalSVideoOutPorts property is set</returns>
+        public Boolean IsSetTotalSVideoOutPorts()
+        {
+            return  this.totalSVideoOutPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUSB2Ports property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUSB2Ports")]
+        public Decimal TotalUSB2Ports
+        {
+            get { return this.totalUSB2PortsField.GetValueOrDefault() ; }
+            set { this.totalUSB2PortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUSB2Ports property
+        /// </summary>
+        /// <param name="totalUSB2Ports">TotalUSB2Ports property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalUSB2Ports(Decimal totalUSB2Ports)
+        {
+            this.totalUSB2PortsField = totalUSB2Ports;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUSB2Ports property is set
+        /// </summary>
+        /// <returns>true if TotalUSB2Ports property is set</returns>
+        public Boolean IsSetTotalUSB2Ports()
+        {
+            return  this.totalUSB2PortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUSBPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUSBPorts")]
+        public Decimal TotalUSBPorts
+        {
+            get { return this.totalUSBPortsField.GetValueOrDefault() ; }
+            set { this.totalUSBPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUSBPorts property
+        /// </summary>
+        /// <param name="totalUSBPorts">TotalUSBPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalUSBPorts(Decimal totalUSBPorts)
+        {
+            this.totalUSBPortsField = totalUSBPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUSBPorts property is set
+        /// </summary>
+        /// <returns>true if TotalUSBPorts property is set</returns>
+        public Boolean IsSetTotalUSBPorts()
+        {
+            return  this.totalUSBPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalVGAOutPorts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVGAOutPorts")]
+        public Decimal TotalVGAOutPorts
+        {
+            get { return this.totalVGAOutPortsField.GetValueOrDefault() ; }
+            set { this.totalVGAOutPortsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVGAOutPorts property
+        /// </summary>
+        /// <param name="totalVGAOutPorts">TotalVGAOutPorts property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithTotalVGAOutPorts(Decimal totalVGAOutPorts)
+        {
+            this.totalVGAOutPortsField = totalVGAOutPorts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVGAOutPorts property is set
+        /// </summary>
+        /// <returns>true if TotalVGAOutPorts property is set</returns>
+        public Boolean IsSetTotalVGAOutPorts()
+        {
+            return  this.totalVGAOutPortsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the UPC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UPC")]
+        public String UPC
+        {
+            get { return this.UPCField ; }
+            set { this.UPCField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UPC property
+        /// </summary>
+        /// <param name="UPC">UPC property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithUPC(String UPC)
+        {
+            this.UPCField = UPC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UPC property is set
+        /// </summary>
+        /// <returns>true if UPC property is set</returns>
+        public Boolean IsSetUPC()
+        {
+            return  this.UPCField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationDenomination property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDenomination")]
+        public String VariationDenomination
+        {
+            get { return this.variationDenominationField ; }
+            set { this.variationDenominationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDenomination property
+        /// </summary>
+        /// <param name="variationDenomination">VariationDenomination property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithVariationDenomination(String variationDenomination)
+        {
+            this.variationDenominationField = variationDenomination;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationDenomination property is set
+        /// </summary>
+        /// <returns>true if VariationDenomination property is set</returns>
+        public Boolean IsSetVariationDenomination()
+        {
+            return  this.variationDenominationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDescription")]
+        public String VariationDescription
+        {
+            get { return this.variationDescriptionField ; }
+            set { this.variationDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDescription property
+        /// </summary>
+        /// <param name="variationDescription">VariationDescription property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithVariationDescription(String variationDescription)
+        {
+            this.variationDescriptionField = variationDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationDescription property is set
+        /// </summary>
+        /// <returns>true if VariationDescription property is set</returns>
+        public Boolean IsSetVariationDescription()
+        {
+            return  this.variationDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VendorRebate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VendorRebate")]
+        public VendorRebate VendorRebate
+        {
+            get { return this.vendorRebateField ; }
+            set { this.vendorRebateField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VendorRebate property
+        /// </summary>
+        /// <param name="vendorRebate">VendorRebate property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithVendorRebate(VendorRebate vendorRebate)
+        {
+            this.vendorRebateField = vendorRebate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VendorRebate property is set
+        /// </summary>
+        /// <returns>true if VendorRebate property is set</returns>
+        public Boolean IsSetVendorRebate()
+        {
+            return this.vendorRebateField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Warranty property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Warranty")]
+        public String Warranty
+        {
+            get { return this.warrantyField ; }
+            set { this.warrantyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Warranty property
+        /// </summary>
+        /// <param name="warranty">Warranty property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithWarranty(String warranty)
+        {
+            this.warrantyField = warranty;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Warranty property is set
+        /// </summary>
+        /// <returns>true if Warranty property is set</returns>
+        public Boolean IsSetWarranty()
+        {
+            return  this.warrantyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WatchMovementType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WatchMovementType")]
+        public String WatchMovementType
+        {
+            get { return this.watchMovementTypeField ; }
+            set { this.watchMovementTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WatchMovementType property
+        /// </summary>
+        /// <param name="watchMovementType">WatchMovementType property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithWatchMovementType(String watchMovementType)
+        {
+            this.watchMovementTypeField = watchMovementType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WatchMovementType property is set
+        /// </summary>
+        /// <returns>true if WatchMovementType property is set</returns>
+        public Boolean IsSetWatchMovementType()
+        {
+            return  this.watchMovementTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WebsiteBuyability property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WebsiteBuyability")]
+        public String WebsiteBuyability
+        {
+            get { return this.websiteBuyabilityField ; }
+            set { this.websiteBuyabilityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WebsiteBuyability property
+        /// </summary>
+        /// <param name="websiteBuyability">WebsiteBuyability property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithWebsiteBuyability(String websiteBuyability)
+        {
+            this.websiteBuyabilityField = websiteBuyability;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WebsiteBuyability property is set
+        /// </summary>
+        /// <returns>true if WebsiteBuyability property is set</returns>
+        public Boolean IsSetWebsiteBuyability()
+        {
+            return  this.websiteBuyabilityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WaterResistanceDepth property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WaterResistanceDepth")]
+        public DecimalWithUnits WaterResistanceDepth
+        {
+            get { return this.waterResistanceDepthField ; }
+            set { this.waterResistanceDepthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WaterResistanceDepth property
+        /// </summary>
+        /// <param name="waterResistanceDepth">WaterResistanceDepth property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithWaterResistanceDepth(DecimalWithUnits waterResistanceDepth)
+        {
+            this.waterResistanceDepthField = waterResistanceDepth;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WaterResistanceDepth property is set
+        /// </summary>
+        /// <returns>true if WaterResistanceDepth property is set</returns>
+        public Boolean IsSetWaterResistanceDepth()
+        {
+            return this.waterResistanceDepthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the WirelessMicrophoneFrequency property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WirelessMicrophoneFrequency")]
+        public Decimal WirelessMicrophoneFrequency
+        {
+            get { return this.wirelessMicrophoneFrequencyField.GetValueOrDefault() ; }
+            set { this.wirelessMicrophoneFrequencyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WirelessMicrophoneFrequency property
+        /// </summary>
+        /// <param name="wirelessMicrophoneFrequency">WirelessMicrophoneFrequency property</param>
+        /// <returns>this instance</returns>
+        public MerchantItemAttributes WithWirelessMicrophoneFrequency(Decimal wirelessMicrophoneFrequency)
+        {
+            this.wirelessMicrophoneFrequencyField = wirelessMicrophoneFrequency;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WirelessMicrophoneFrequency property is set
+        /// </summary>
+        /// <returns>true if WirelessMicrophoneFrequency property is set</returns>
+        public Boolean IsSetWirelessMicrophoneFrequency()
+        {
+            return  this.wirelessMicrophoneFrequencyField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> actorList  =  this.Actor;
+            foreach (String actor in actorList) { 
+                xml.Append("<Actor>");
+                xml.Append(EscapeXML(actor));
+                xml.Append("</Actor>");
+            }	
+            if (IsSetAddress()) {
+                Address  address = this.Address;
+                xml.Append("<Address>");
+                xml.Append(address.ToXMLFragment());
+                xml.Append("</Address>");
+            } 
+            if (IsSetAmazonMaximumAge()) {
+                DecimalWithUnits  amazonMaximumAge = this.AmazonMaximumAge;
+                xml.Append("<AmazonMaximumAge Units=" + "\"" +  EscapeXML(amazonMaximumAge.Units)  + "\"" +  ">");
+                xml.Append(amazonMaximumAge.Value);
+                xml.Append("</AmazonMaximumAge>");
+            } 
+            if (IsSetAmazonMinimumAge()) {
+                DecimalWithUnits  amazonMinimumAge = this.AmazonMinimumAge;
+                xml.Append("<AmazonMinimumAge Units=" + "\"" +  EscapeXML(amazonMinimumAge.Units)  + "\"" +  ">");
+                xml.Append(amazonMinimumAge.Value);
+                xml.Append("</AmazonMinimumAge>");
+            } 
+            if (IsSetApertureModes()) {
+                xml.Append("<ApertureModes>");
+                xml.Append(EscapeXML(this.ApertureModes));
+                xml.Append("</ApertureModes>");
+            }
+            List<String> artistList  =  this.Artist;
+            foreach (String artist in artistList) { 
+                xml.Append("<Artist>");
+                xml.Append(EscapeXML(artist));
+                xml.Append("</Artist>");
+            }	
+            if (IsSetAspectRatio()) {
+                xml.Append("<AspectRatio>");
+                xml.Append(EscapeXML(this.AspectRatio));
+                xml.Append("</AspectRatio>");
+            }
+            if (IsSetAssemblyInstructions()) {
+                xml.Append("<AssemblyInstructions>");
+                xml.Append(EscapeXML(this.AssemblyInstructions));
+                xml.Append("</AssemblyInstructions>");
+            }
+            if (IsSetAssemblyRequired()) {
+                xml.Append("<AssemblyRequired>");
+                xml.Append(EscapeXML(this.AssemblyRequired));
+                xml.Append("</AssemblyRequired>");
+            }
+            if (IsSetAudienceRating()) {
+                xml.Append("<AudienceRating>");
+                xml.Append(EscapeXML(this.AudienceRating));
+                xml.Append("</AudienceRating>");
+            }
+            List<String> audioFormatList  =  this.AudioFormat;
+            foreach (String audioFormat in audioFormatList) { 
+                xml.Append("<AudioFormat>");
+                xml.Append(EscapeXML(audioFormat));
+                xml.Append("</AudioFormat>");
+            }	
+            List<String> authorList  =  this.Author;
+            foreach (String author in authorList) { 
+                xml.Append("<Author>");
+                xml.Append(EscapeXML(author));
+                xml.Append("</Author>");
+            }	
+            if (IsSetBackFinding()) {
+                xml.Append("<BackFinding>");
+                xml.Append(EscapeXML(this.BackFinding));
+                xml.Append("</BackFinding>");
+            }
+            if (IsSetBandMaterialType()) {
+                xml.Append("<BandMaterialType>");
+                xml.Append(EscapeXML(this.BandMaterialType));
+                xml.Append("</BandMaterialType>");
+            }
+            if (IsSetBatteriesIncluded()) {
+                xml.Append("<BatteriesIncluded>");
+                xml.Append(EscapeXML(this.BatteriesIncluded));
+                xml.Append("</BatteriesIncluded>");
+            }
+            if (IsSetBatteriesRequired()) {
+                xml.Append("<BatteriesRequired>");
+                xml.Append(EscapeXML(this.BatteriesRequired));
+                xml.Append("</BatteriesRequired>");
+            }
+            if (IsSetBatteries()) {
+                NonNegativeIntegerWithUnits  batteries = this.Batteries;
+                xml.Append("<Batteries Units=" + "\"" +  EscapeXML(batteries.Units)  + "\"" +  ">");
+                xml.Append(batteries.Value);
+                xml.Append("</Batteries>");
+            } 
+            if (IsSetBatteryDescription()) {
+                xml.Append("<BatteryDescription>");
+                xml.Append(EscapeXML(this.BatteryDescription));
+                xml.Append("</BatteryDescription>");
+            }
+            if (IsSetBatteryType()) {
+                xml.Append("<BatteryType>");
+                xml.Append(EscapeXML(this.BatteryType));
+                xml.Append("</BatteryType>");
+            }
+            if (IsSetBezelMaterialType()) {
+                xml.Append("<BezelMaterialType>");
+                xml.Append(EscapeXML(this.BezelMaterialType));
+                xml.Append("</BezelMaterialType>");
+            }
+            if (IsSetBinding()) {
+                xml.Append("<Binding>");
+                xml.Append(EscapeXML(this.Binding));
+                xml.Append("</Binding>");
+            }
+            if (IsSetBrand()) {
+                xml.Append("<Brand>");
+                xml.Append(EscapeXML(this.Brand));
+                xml.Append("</Brand>");
+            }
+            if (IsSetCalendarType()) {
+                xml.Append("<CalendarType>");
+                xml.Append(EscapeXML(this.CalendarType));
+                xml.Append("</CalendarType>");
+            }
+            List<String> cameraManualFeaturesList  =  this.CameraManualFeatures;
+            foreach (String cameraManualFeatures in cameraManualFeaturesList) { 
+                xml.Append("<CameraManualFeatures>");
+                xml.Append(EscapeXML(cameraManualFeatures));
+                xml.Append("</CameraManualFeatures>");
+            }	
+            if (IsSetCaseDiameter()) {
+                DecimalWithUnits  caseDiameter = this.CaseDiameter;
+                xml.Append("<CaseDiameter Units=" + "\"" +  EscapeXML(caseDiameter.Units)  + "\"" +  ">");
+                xml.Append(caseDiameter.Value);
+                xml.Append("</CaseDiameter>");
+            } 
+            if (IsSetCaseMaterialType()) {
+                xml.Append("<CaseMaterialType>");
+                xml.Append(EscapeXML(this.CaseMaterialType));
+                xml.Append("</CaseMaterialType>");
+            }
+            if (IsSetCaseThickness()) {
+                DecimalWithUnits  caseThickness = this.CaseThickness;
+                xml.Append("<CaseThickness Units=" + "\"" +  EscapeXML(caseThickness.Units)  + "\"" +  ">");
+                xml.Append(caseThickness.Value);
+                xml.Append("</CaseThickness>");
+            } 
+            if (IsSetCaseType()) {
+                xml.Append("<CaseType>");
+                xml.Append(EscapeXML(this.CaseType));
+                xml.Append("</CaseType>");
+            }
+            if (IsSetCatalogNumber()) {
+                xml.Append("<CatalogNumber>");
+                xml.Append(EscapeXML(this.CatalogNumber));
+                xml.Append("</CatalogNumber>");
+            }
+            if (IsSetCDRWDescription()) {
+                xml.Append("<CDRWDescription>");
+                xml.Append(EscapeXML(this.CDRWDescription));
+                xml.Append("</CDRWDescription>");
+            }
+            if (IsSetChainType()) {
+                xml.Append("<ChainType>");
+                xml.Append(EscapeXML(this.ChainType));
+                xml.Append("</ChainType>");
+            }
+            if (IsSetClaspType()) {
+                xml.Append("<ClaspType>");
+                xml.Append(EscapeXML(this.ClaspType));
+                xml.Append("</ClaspType>");
+            }
+            if (IsSetClothingSize()) {
+                xml.Append("<ClothingSize>");
+                xml.Append(EscapeXML(this.ClothingSize));
+                xml.Append("</ClothingSize>");
+            }
+            if (IsSetColor()) {
+                xml.Append("<Color>");
+                xml.Append(EscapeXML(this.Color));
+                xml.Append("</Color>");
+            }
+            if (IsSetCompatibility()) {
+                xml.Append("<Compatibility>");
+                xml.Append(EscapeXML(this.Compatibility));
+                xml.Append("</Compatibility>");
+            }
+            if (IsSetComputerHardwareType()) {
+                xml.Append("<ComputerHardwareType>");
+                xml.Append(EscapeXML(this.ComputerHardwareType));
+                xml.Append("</ComputerHardwareType>");
+            }
+            if (IsSetComputerPlatform()) {
+                xml.Append("<ComputerPlatform>");
+                xml.Append(EscapeXML(this.ComputerPlatform));
+                xml.Append("</ComputerPlatform>");
+            }
+            if (IsSetConnectivity()) {
+                xml.Append("<Connectivity>");
+                xml.Append(EscapeXML(this.Connectivity));
+                xml.Append("</Connectivity>");
+            }
+            if (IsSetContinuousShootingSpeed()) {
+                DecimalWithUnits  continuousShootingSpeed = this.ContinuousShootingSpeed;
+                xml.Append("<ContinuousShootingSpeed Units=" + "\"" +  EscapeXML(continuousShootingSpeed.Units)  + "\"" +  ">");
+                xml.Append(continuousShootingSpeed.Value);
+                xml.Append("</ContinuousShootingSpeed>");
+            } 
+            if (IsSetCountry()) {
+                xml.Append("<Country>");
+                xml.Append(EscapeXML(this.Country));
+                xml.Append("</Country>");
+            }
+            if (IsSetCountryOfOrigin()) {
+                xml.Append("<CountryOfOrigin>");
+                xml.Append(EscapeXML(this.CountryOfOrigin));
+                xml.Append("</CountryOfOrigin>");
+            }
+            if (IsSetCPUManufacturer()) {
+                xml.Append("<CPUManufacturer>");
+                xml.Append(EscapeXML(this.CPUManufacturer));
+                xml.Append("</CPUManufacturer>");
+            }
+            if (IsSetCPUSpeed()) {
+                DecimalWithUnits  CPUSpeed = this.CPUSpeed;
+                xml.Append("<CPUSpeed Units=" + "\"" +  EscapeXML(CPUSpeed.Units)  + "\"" +  ">");
+                xml.Append(CPUSpeed.Value);
+                xml.Append("</CPUSpeed>");
+            } 
+            if (IsSetCPUType()) {
+                xml.Append("<CPUType>");
+                xml.Append(EscapeXML(this.CPUType));
+                xml.Append("</CPUType>");
+            }
+            List<Creator> creatorList = this.Creator;
+            foreach (Creator creator in creatorList) {
+                xml.Append("<Creator Role=" + "\"" +  EscapeXML(creator.Role)  + "\"" +  ">");
+                xml.Append(EscapeXML(creator.Value));
+                xml.Append("</Creator>");
+            }
+            if (IsSetCuisine()) {
+                xml.Append("<Cuisine>");
+                xml.Append(EscapeXML(this.Cuisine));
+                xml.Append("</Cuisine>");
+            }
+            if (IsSetCustomizable()) {
+                xml.Append("<Customizable>");
+                xml.Append(EscapeXML(this.Customizable));
+                xml.Append("</Customizable>");
+            }
+            if (IsSetDelayBetweenShots()) {
+                DecimalWithUnits  delayBetweenShots = this.DelayBetweenShots;
+                xml.Append("<DelayBetweenShots Units=" + "\"" +  EscapeXML(delayBetweenShots.Units)  + "\"" +  ">");
+                xml.Append(delayBetweenShots.Value);
+                xml.Append("</DelayBetweenShots>");
+            } 
+            if (IsSetDeliveryOption()) {
+                xml.Append("<DeliveryOption>");
+                xml.Append(EscapeXML(this.DeliveryOption));
+                xml.Append("</DeliveryOption>");
+            }
+            if (IsSetDepartment()) {
+                xml.Append("<Department>");
+                xml.Append(EscapeXML(this.Department));
+                xml.Append("</Department>");
+            }
+            if (IsSetDescription()) {
+                xml.Append("<Description>");
+                xml.Append(EscapeXML(this.Description));
+                xml.Append("</Description>");
+            }
+            if (IsSetDeweyDecimalNumber()) {
+                xml.Append("<DeweyDecimalNumber>");
+                xml.Append(EscapeXML(this.DeweyDecimalNumber));
+                xml.Append("</DeweyDecimalNumber>");
+            }
+            if (IsSetDialColor()) {
+                xml.Append("<DialColor>");
+                xml.Append(EscapeXML(this.DialColor));
+                xml.Append("</DialColor>");
+            }
+            if (IsSetDialWindowMaterialType()) {
+                xml.Append("<DialWindowMaterialType>");
+                xml.Append(EscapeXML(this.DialWindowMaterialType));
+                xml.Append("</DialWindowMaterialType>");
+            }
+            if (IsSetDigitalZoom()) {
+                DecimalWithUnits  digitalZoom = this.DigitalZoom;
+                xml.Append("<DigitalZoom Units=" + "\"" +  EscapeXML(digitalZoom.Units)  + "\"" +  ">");
+                xml.Append(digitalZoom.Value);
+                xml.Append("</DigitalZoom>");
+            } 
+            List<String> directorList  =  this.Director;
+            foreach (String director in directorList) { 
+                xml.Append("<Director>");
+                xml.Append(EscapeXML(director));
+                xml.Append("</Director>");
+            }	
+            if (IsSetDisplaySize()) {
+                DecimalWithUnits  displaySize = this.DisplaySize;
+                xml.Append("<DisplaySize Units=" + "\"" +  EscapeXML(displaySize.Units)  + "\"" +  ">");
+                xml.Append(displaySize.Value);
+                xml.Append("</DisplaySize>");
+            } 
+            if (IsSetDrumSetPieceQuantity()) {
+                xml.Append("<DrumSetPieceQuantity>");
+                xml.Append(this.DrumSetPieceQuantity);
+                xml.Append("</DrumSetPieceQuantity>");
+            }
+            if (IsSetDVDLayers()) {
+                xml.Append("<DVDLayers>");
+                xml.Append(this.DVDLayers);
+                xml.Append("</DVDLayers>");
+            }
+            if (IsSetDVDRWDescription()) {
+                xml.Append("<DVDRWDescription>");
+                xml.Append(EscapeXML(this.DVDRWDescription));
+                xml.Append("</DVDRWDescription>");
+            }
+            if (IsSetDVDSides()) {
+                xml.Append("<DVDSides>");
+                xml.Append(this.DVDSides);
+                xml.Append("</DVDSides>");
+            }
+            if (IsSetDPCI()) {
+                xml.Append("<DPCI>");
+                xml.Append(EscapeXML(this.DPCI));
+                xml.Append("</DPCI>");
+            }
+            if (IsSetEAN()) {
+                xml.Append("<EAN>");
+                xml.Append(EscapeXML(this.EAN));
+                xml.Append("</EAN>");
+            }
+            if (IsSetEdition()) {
+                xml.Append("<Edition>");
+                xml.Append(EscapeXML(this.Edition));
+                xml.Append("</Edition>");
+            }
+            if (IsSetESRBAgeRating()) {
+                xml.Append("<ESRBAgeRating>");
+                xml.Append(EscapeXML(this.ESRBAgeRating));
+                xml.Append("</ESRBAgeRating>");
+            }
+            if (IsSetExternalDisplaySupportDescription()) {
+                xml.Append("<ExternalDisplaySupportDescription>");
+                xml.Append(EscapeXML(this.ExternalDisplaySupportDescription));
+                xml.Append("</ExternalDisplaySupportDescription>");
+            }
+            if (IsSetFabricType()) {
+                xml.Append("<FabricType>");
+                xml.Append(EscapeXML(this.FabricType));
+                xml.Append("</FabricType>");
+            }
+            if (IsSetFaxNumber()) {
+                xml.Append("<FaxNumber>");
+                xml.Append(EscapeXML(this.FaxNumber));
+                xml.Append("</FaxNumber>");
+            }
+            List<String> featureList  =  this.Feature;
+            foreach (String feature in featureList) { 
+                xml.Append("<Feature>");
+                xml.Append(EscapeXML(feature));
+                xml.Append("</Feature>");
+            }	
+            if (IsSetFirstIssueLeadTime()) {
+                StringWithUnits  firstIssueLeadTime = this.FirstIssueLeadTime;
+                xml.Append("<FirstIssueLeadTime Units=" + "\"" +  EscapeXML(firstIssueLeadTime.Units)  + "\"" +  ">");
+                xml.Append(EscapeXML(firstIssueLeadTime.Value));
+                xml.Append("</FirstIssueLeadTime>");
+            } 
+            if (IsSetFloppyDiskDriveDescription()) {
+                xml.Append("<FloppyDiskDriveDescription>");
+                xml.Append(EscapeXML(this.FloppyDiskDriveDescription));
+                xml.Append("</FloppyDiskDriveDescription>");
+            }
+            List<String> formatList  =  this.Format;
+            foreach (String format in formatList) { 
+                xml.Append("<Format>");
+                xml.Append(EscapeXML(format));
+                xml.Append("</Format>");
+            }	
+            if (IsSetFixedShippingCharge()) {
+                Price  fixedShippingCharge = this.FixedShippingCharge;
+                xml.Append("<FixedShippingCharge>");
+                xml.Append(fixedShippingCharge.ToXMLFragment());
+                xml.Append("</FixedShippingCharge>");
+            } 
+            if (IsSetGemType()) {
+                xml.Append("<GemType>");
+                xml.Append(EscapeXML(this.GemType));
+                xml.Append("</GemType>");
+            }
+            if (IsSetGraphicsCardInterface()) {
+                xml.Append("<GraphicsCardInterface>");
+                xml.Append(EscapeXML(this.GraphicsCardInterface));
+                xml.Append("</GraphicsCardInterface>");
+            }
+            if (IsSetGraphicsDescription()) {
+                xml.Append("<GraphicsDescription>");
+                xml.Append(EscapeXML(this.GraphicsDescription));
+                xml.Append("</GraphicsDescription>");
+            }
+            if (IsSetGraphicsMemorySize()) {
+                DecimalWithUnits  graphicsMemorySize = this.GraphicsMemorySize;
+                xml.Append("<GraphicsMemorySize Units=" + "\"" +  EscapeXML(graphicsMemorySize.Units)  + "\"" +  ">");
+                xml.Append(graphicsMemorySize.Value);
+                xml.Append("</GraphicsMemorySize>");
+            } 
+            if (IsSetGuitarAttribute()) {
+                xml.Append("<GuitarAttribute>");
+                xml.Append(EscapeXML(this.GuitarAttribute));
+                xml.Append("</GuitarAttribute>");
+            }
+            if (IsSetGuitarBridgeSystem()) {
+                xml.Append("<GuitarBridgeSystem>");
+                xml.Append(EscapeXML(this.GuitarBridgeSystem));
+                xml.Append("</GuitarBridgeSystem>");
+            }
+            if (IsSetGuitarPickThickness()) {
+                xml.Append("<GuitarPickThickness>");
+                xml.Append(EscapeXML(this.GuitarPickThickness));
+                xml.Append("</GuitarPickThickness>");
+            }
+            if (IsSetGuitarPickupConfiguration()) {
+                xml.Append("<GuitarPickupConfiguration>");
+                xml.Append(EscapeXML(this.GuitarPickupConfiguration));
+                xml.Append("</GuitarPickupConfiguration>");
+            }
+            if (IsSetHardDiskCount()) {
+                xml.Append("<HardDiskCount>");
+                xml.Append(this.HardDiskCount);
+                xml.Append("</HardDiskCount>");
+            }
+            if (IsSetHardDiskSize()) {
+                NonNegativeIntegerWithUnits  hardDiskSize = this.HardDiskSize;
+                xml.Append("<HardDiskSize Units=" + "\"" +  EscapeXML(hardDiskSize.Units)  + "\"" +  ">");
+                xml.Append(hardDiskSize.Value);
+                xml.Append("</HardDiskSize>");
+            } 
+            if (IsSetHasAutoFocus()) {
+                xml.Append("<HasAutoFocus>");
+                xml.Append(this.HasAutoFocus);
+                xml.Append("</HasAutoFocus>");
+            }
+            if (IsSetHasBurstMode()) {
+                xml.Append("<HasBurstMode>");
+                xml.Append(this.HasBurstMode);
+                xml.Append("</HasBurstMode>");
+            }
+            if (IsSetHasInCameraEditing()) {
+                xml.Append("<HasInCameraEditing>");
+                xml.Append(this.HasInCameraEditing);
+                xml.Append("</HasInCameraEditing>");
+            }
+            if (IsSetHasRedEyeReduction()) {
+                xml.Append("<HasRedEyeReduction>");
+                xml.Append(this.HasRedEyeReduction);
+                xml.Append("</HasRedEyeReduction>");
+            }
+            if (IsSetHasSelfTimer()) {
+                xml.Append("<HasSelfTimer>");
+                xml.Append(this.HasSelfTimer);
+                xml.Append("</HasSelfTimer>");
+            }
+            if (IsSetHasTripodMount()) {
+                xml.Append("<HasTripodMount>");
+                xml.Append(this.HasTripodMount);
+                xml.Append("</HasTripodMount>");
+            }
+            if (IsSetHasVideoOut()) {
+                xml.Append("<HasVideoOut>");
+                xml.Append(this.HasVideoOut);
+                xml.Append("</HasVideoOut>");
+            }
+            if (IsSetHasViewfinder()) {
+                xml.Append("<HasViewfinder>");
+                xml.Append(this.HasViewfinder);
+                xml.Append("</HasViewfinder>");
+            }
+            if (IsSetHazardousMaterialType()) {
+                xml.Append("<HazardousMaterialType>");
+                xml.Append(EscapeXML(this.HazardousMaterialType));
+                xml.Append("</HazardousMaterialType>");
+            }
+            if (IsSetHoursOfOperation()) {
+                xml.Append("<HoursOfOperation>");
+                xml.Append(EscapeXML(this.HoursOfOperation));
+                xml.Append("</HoursOfOperation>");
+            }
+            if (IsSetIncludedSoftware()) {
+                xml.Append("<IncludedSoftware>");
+                xml.Append(EscapeXML(this.IncludedSoftware));
+                xml.Append("</IncludedSoftware>");
+            }
+            if (IsSetIncludesMp3Player()) {
+                xml.Append("<IncludesMp3Player>");
+                xml.Append(this.IncludesMp3Player);
+                xml.Append("</IncludesMp3Player>");
+            }
+            if (IsSetIndications()) {
+                xml.Append("<Indications>");
+                xml.Append(EscapeXML(this.Indications));
+                xml.Append("</Indications>");
+            }
+            if (IsSetIngredients()) {
+                xml.Append("<Ingredients>");
+                xml.Append(EscapeXML(this.Ingredients));
+                xml.Append("</Ingredients>");
+            }
+            if (IsSetInstrumentKey()) {
+                xml.Append("<InstrumentKey>");
+                xml.Append(EscapeXML(this.InstrumentKey));
+                xml.Append("</InstrumentKey>");
+            }
+            if (IsSetIsAutographed()) {
+                xml.Append("<IsAutographed>");
+                xml.Append(this.IsAutographed);
+                xml.Append("</IsAutographed>");
+            }
+            if (IsSetISBN()) {
+                xml.Append("<ISBN>");
+                xml.Append(EscapeXML(this.ISBN));
+                xml.Append("</ISBN>");
+            }
+            if (IsSetIsFragile()) {
+                xml.Append("<IsFragile>");
+                xml.Append(this.IsFragile);
+                xml.Append("</IsFragile>");
+            }
+            if (IsSetIsLabCreated()) {
+                xml.Append("<IsLabCreated>");
+                xml.Append(this.IsLabCreated);
+                xml.Append("</IsLabCreated>");
+            }
+            if (IsSetIsMemorabilia()) {
+                xml.Append("<IsMemorabilia>");
+                xml.Append(this.IsMemorabilia);
+                xml.Append("</IsMemorabilia>");
+            }
+            if (IsSetISOEquivalent()) {
+                NonNegativeIntegerWithUnits  ISOEquivalent = this.ISOEquivalent;
+                xml.Append("<ISOEquivalent Units=" + "\"" +  EscapeXML(ISOEquivalent.Units)  + "\"" +  ">");
+                xml.Append(ISOEquivalent.Value);
+                xml.Append("</ISOEquivalent>");
+            } 
+            if (IsSetIssuesPerYear()) {
+                xml.Append("<IssuesPerYear>");
+                xml.Append(EscapeXML(this.IssuesPerYear));
+                xml.Append("</IssuesPerYear>");
+            }
+            if (IsSetItemDimensions()) {
+                ItemDimensions  itemDimensions = this.ItemDimensions;
+                xml.Append("<ItemDimensions>");
+                xml.Append(itemDimensions.ToXMLFragment());
+                xml.Append("</ItemDimensions>");
+            } 
+            if (IsSetKeyboardDescription()) {
+                xml.Append("<KeyboardDescription>");
+                xml.Append(EscapeXML(this.KeyboardDescription));
+                xml.Append("</KeyboardDescription>");
+            }
+            if (IsSetLabel()) {
+                xml.Append("<Label>");
+                xml.Append(EscapeXML(this.Label));
+                xml.Append("</Label>");
+            }
+            if (IsSetLanguages()) {
+                Languages  languages = this.Languages;
+                xml.Append("<Languages>");
+                xml.Append(languages.ToXMLFragment());
+                xml.Append("</Languages>");
+            } 
+            if (IsSetLegalDisclaimer()) {
+                xml.Append("<LegalDisclaimer>");
+                xml.Append(EscapeXML(this.LegalDisclaimer));
+                xml.Append("</LegalDisclaimer>");
+            }
+            if (IsSetLineVoltage()) {
+                xml.Append("<LineVoltage>");
+                xml.Append(EscapeXML(this.LineVoltage));
+                xml.Append("</LineVoltage>");
+            }
+            if (IsSetListPrice()) {
+                Price  listPrice = this.ListPrice;
+                xml.Append("<ListPrice>");
+                xml.Append(listPrice.ToXMLFragment());
+                xml.Append("</ListPrice>");
+            } 
+            if (IsSetMacroFocusRange()) {
+                xml.Append("<MacroFocusRange>");
+                xml.Append(EscapeXML(this.MacroFocusRange));
+                xml.Append("</MacroFocusRange>");
+            }
+            if (IsSetMagazineType()) {
+                xml.Append("<MagazineType>");
+                xml.Append(EscapeXML(this.MagazineType));
+                xml.Append("</MagazineType>");
+            }
+            if (IsSetMalletHardness()) {
+                xml.Append("<MalletHardness>");
+                xml.Append(EscapeXML(this.MalletHardness));
+                xml.Append("</MalletHardness>");
+            }
+            if (IsSetManufacturer()) {
+                xml.Append("<Manufacturer>");
+                xml.Append(EscapeXML(this.Manufacturer));
+                xml.Append("</Manufacturer>");
+            }
+            if (IsSetManufacturerLaborWarrantyDescription()) {
+                xml.Append("<ManufacturerLaborWarrantyDescription>");
+                xml.Append(EscapeXML(this.ManufacturerLaborWarrantyDescription));
+                xml.Append("</ManufacturerLaborWarrantyDescription>");
+            }
+            if (IsSetManufacturerMaximumAge()) {
+                DecimalWithUnits  manufacturerMaximumAge = this.ManufacturerMaximumAge;
+                xml.Append("<ManufacturerMaximumAge Units=" + "\"" +  EscapeXML(manufacturerMaximumAge.Units)  + "\"" +  ">");
+                xml.Append(manufacturerMaximumAge.Value);
+                xml.Append("</ManufacturerMaximumAge>");
+            } 
+            if (IsSetManufacturerMinimumAge()) {
+                DecimalWithUnits  manufacturerMinimumAge = this.ManufacturerMinimumAge;
+                xml.Append("<ManufacturerMinimumAge Units=" + "\"" +  EscapeXML(manufacturerMinimumAge.Units)  + "\"" +  ">");
+                xml.Append(manufacturerMinimumAge.Value);
+                xml.Append("</ManufacturerMinimumAge>");
+            } 
+            if (IsSetManufacturerPartsWarrantyDescription()) {
+                xml.Append("<ManufacturerPartsWarrantyDescription>");
+                xml.Append(EscapeXML(this.ManufacturerPartsWarrantyDescription));
+                xml.Append("</ManufacturerPartsWarrantyDescription>");
+            }
+            if (IsSetMaterialType()) {
+                xml.Append("<MaterialType>");
+                xml.Append(EscapeXML(this.MaterialType));
+                xml.Append("</MaterialType>");
+            }
+            if (IsSetMaximumAperture()) {
+                DecimalWithUnits  maximumAperture = this.MaximumAperture;
+                xml.Append("<MaximumAperture Units=" + "\"" +  EscapeXML(maximumAperture.Units)  + "\"" +  ">");
+                xml.Append(maximumAperture.Value);
+                xml.Append("</MaximumAperture>");
+            } 
+            if (IsSetMaximumColorDepth()) {
+                xml.Append("<MaximumColorDepth>");
+                xml.Append(EscapeXML(this.MaximumColorDepth));
+                xml.Append("</MaximumColorDepth>");
+            }
+            if (IsSetMaximumFocalLength()) {
+                DecimalWithUnits  maximumFocalLength = this.MaximumFocalLength;
+                xml.Append("<MaximumFocalLength Units=" + "\"" +  EscapeXML(maximumFocalLength.Units)  + "\"" +  ">");
+                xml.Append(maximumFocalLength.Value);
+                xml.Append("</MaximumFocalLength>");
+            } 
+            if (IsSetMaximumHighResolutionImages()) {
+                NonNegativeIntegerWithUnits  maximumHighResolutionImages = this.MaximumHighResolutionImages;
+                xml.Append("<MaximumHighResolutionImages Units=" + "\"" +  EscapeXML(maximumHighResolutionImages.Units)  + "\"" +  ">");
+                xml.Append(maximumHighResolutionImages.Value);
+                xml.Append("</MaximumHighResolutionImages>");
+            } 
+            if (IsSetMaximumHorizontalResolution()) {
+                NonNegativeIntegerWithUnits  maximumHorizontalResolution = this.MaximumHorizontalResolution;
+                xml.Append("<MaximumHorizontalResolution Units=" + "\"" +  EscapeXML(maximumHorizontalResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumHorizontalResolution.Value);
+                xml.Append("</MaximumHorizontalResolution>");
+            } 
+            if (IsSetMaximumLowResolutionImages()) {
+                xml.Append("<MaximumLowResolutionImages>");
+                xml.Append(EscapeXML(this.MaximumLowResolutionImages));
+                xml.Append("</MaximumLowResolutionImages>");
+            }
+            if (IsSetMaximumResolution()) {
+                DecimalWithUnits  maximumResolution = this.MaximumResolution;
+                xml.Append("<MaximumResolution Units=" + "\"" +  EscapeXML(maximumResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumResolution.Value);
+                xml.Append("</MaximumResolution>");
+            } 
+            if (IsSetMaximumShutterSpeed()) {
+                DecimalWithUnits  maximumShutterSpeed = this.MaximumShutterSpeed;
+                xml.Append("<MaximumShutterSpeed Units=" + "\"" +  EscapeXML(maximumShutterSpeed.Units)  + "\"" +  ">");
+                xml.Append(maximumShutterSpeed.Value);
+                xml.Append("</MaximumShutterSpeed>");
+            } 
+            if (IsSetMaximumVerticalResolution()) {
+                NonNegativeIntegerWithUnits  maximumVerticalResolution = this.MaximumVerticalResolution;
+                xml.Append("<MaximumVerticalResolution Units=" + "\"" +  EscapeXML(maximumVerticalResolution.Units)  + "\"" +  ">");
+                xml.Append(maximumVerticalResolution.Value);
+                xml.Append("</MaximumVerticalResolution>");
+            } 
+            if (IsSetMaximumWeightRecommendation()) {
+                DecimalWithUnits  maximumWeightRecommendation = this.MaximumWeightRecommendation;
+                xml.Append("<MaximumWeightRecommendation Units=" + "\"" +  EscapeXML(maximumWeightRecommendation.Units)  + "\"" +  ">");
+                xml.Append(maximumWeightRecommendation.Value);
+                xml.Append("</MaximumWeightRecommendation>");
+            } 
+            if (IsSetMemorySlotsAvailable()) {
+                xml.Append("<MemorySlotsAvailable>");
+                xml.Append(this.MemorySlotsAvailable);
+                xml.Append("</MemorySlotsAvailable>");
+            }
+            if (IsSetMetalStamp()) {
+                xml.Append("<MetalStamp>");
+                xml.Append(EscapeXML(this.MetalStamp));
+                xml.Append("</MetalStamp>");
+            }
+            if (IsSetMetalType()) {
+                xml.Append("<MetalType>");
+                xml.Append(EscapeXML(this.MetalType));
+                xml.Append("</MetalType>");
+            }
+            if (IsSetMiniMovieDescription()) {
+                xml.Append("<MiniMovieDescription>");
+                xml.Append(EscapeXML(this.MiniMovieDescription));
+                xml.Append("</MiniMovieDescription>");
+            }
+            if (IsSetMinimumFocalLength()) {
+                DecimalWithUnits  minimumFocalLength = this.MinimumFocalLength;
+                xml.Append("<MinimumFocalLength Units=" + "\"" +  EscapeXML(minimumFocalLength.Units)  + "\"" +  ">");
+                xml.Append(minimumFocalLength.Value);
+                xml.Append("</MinimumFocalLength>");
+            } 
+            if (IsSetMinimumShutterSpeed()) {
+                DecimalWithUnits  minimumShutterSpeed = this.MinimumShutterSpeed;
+                xml.Append("<MinimumShutterSpeed Units=" + "\"" +  EscapeXML(minimumShutterSpeed.Units)  + "\"" +  ">");
+                xml.Append(minimumShutterSpeed.Value);
+                xml.Append("</MinimumShutterSpeed>");
+            } 
+            if (IsSetModel()) {
+                xml.Append("<Model>");
+                xml.Append(EscapeXML(this.Model));
+                xml.Append("</Model>");
+            }
+            if (IsSetModelYear()) {
+                xml.Append("<ModelYear>");
+                xml.Append(this.ModelYear);
+                xml.Append("</ModelYear>");
+            }
+            if (IsSetModemDescription()) {
+                xml.Append("<ModemDescription>");
+                xml.Append(EscapeXML(this.ModemDescription));
+                xml.Append("</ModemDescription>");
+            }
+            if (IsSetMonitorSize()) {
+                DecimalWithUnits  monitorSize = this.MonitorSize;
+                xml.Append("<MonitorSize Units=" + "\"" +  EscapeXML(monitorSize.Units)  + "\"" +  ">");
+                xml.Append(monitorSize.Value);
+                xml.Append("</MonitorSize>");
+            } 
+            if (IsSetMonitorViewableDiagonalSize()) {
+                DecimalWithUnits  monitorViewableDiagonalSize = this.MonitorViewableDiagonalSize;
+                xml.Append("<MonitorViewableDiagonalSize Units=" + "\"" +  EscapeXML(monitorViewableDiagonalSize.Units)  + "\"" +  ">");
+                xml.Append(monitorViewableDiagonalSize.Value);
+                xml.Append("</MonitorViewableDiagonalSize>");
+            } 
+            if (IsSetMouseDescription()) {
+                xml.Append("<MouseDescription>");
+                xml.Append(EscapeXML(this.MouseDescription));
+                xml.Append("</MouseDescription>");
+            }
+            if (IsSetMPN()) {
+                xml.Append("<MPN>");
+                xml.Append(EscapeXML(this.MPN));
+                xml.Append("</MPN>");
+            }
+            if (IsSetMusicalStyle()) {
+                xml.Append("<MusicalStyle>");
+                xml.Append(EscapeXML(this.MusicalStyle));
+                xml.Append("</MusicalStyle>");
+            }
+            if (IsSetNativeResolution()) {
+                xml.Append("<NativeResolution>");
+                xml.Append(EscapeXML(this.NativeResolution));
+                xml.Append("</NativeResolution>");
+            }
+            if (IsSetNeighborhood()) {
+                xml.Append("<Neighborhood>");
+                xml.Append(EscapeXML(this.Neighborhood));
+                xml.Append("</Neighborhood>");
+            }
+            if (IsSetNetworkInterfaceDescription()) {
+                xml.Append("<NetworkInterfaceDescription>");
+                xml.Append(EscapeXML(this.NetworkInterfaceDescription));
+                xml.Append("</NetworkInterfaceDescription>");
+            }
+            if (IsSetNotebookDisplayTechnology()) {
+                xml.Append("<NotebookDisplayTechnology>");
+                xml.Append(EscapeXML(this.NotebookDisplayTechnology));
+                xml.Append("</NotebookDisplayTechnology>");
+            }
+            if (IsSetNotebookPointingDeviceDescription()) {
+                xml.Append("<NotebookPointingDeviceDescription>");
+                xml.Append(EscapeXML(this.NotebookPointingDeviceDescription));
+                xml.Append("</NotebookPointingDeviceDescription>");
+            }
+            if (IsSetNumberOfDiscs()) {
+                xml.Append("<NumberOfDiscs>");
+                xml.Append(this.NumberOfDiscs);
+                xml.Append("</NumberOfDiscs>");
+            }
+            if (IsSetNumberOfIssues()) {
+                xml.Append("<NumberOfIssues>");
+                xml.Append(this.NumberOfIssues);
+                xml.Append("</NumberOfIssues>");
+            }
+            if (IsSetNumberOfItems()) {
+                xml.Append("<NumberOfItems>");
+                xml.Append(this.NumberOfItems);
+                xml.Append("</NumberOfItems>");
+            }
+            if (IsSetNumberOfKeys()) {
+                xml.Append("<NumberOfKeys>");
+                xml.Append(this.NumberOfKeys);
+                xml.Append("</NumberOfKeys>");
+            }
+            if (IsSetNumberOfPages()) {
+                xml.Append("<NumberOfPages>");
+                xml.Append(this.NumberOfPages);
+                xml.Append("</NumberOfPages>");
+            }
+            if (IsSetNumberOfPearls()) {
+                xml.Append("<NumberOfPearls>");
+                xml.Append(this.NumberOfPearls);
+                xml.Append("</NumberOfPearls>");
+            }
+            if (IsSetNumberOfRapidFireShots()) {
+                xml.Append("<NumberOfRapidFireShots>");
+                xml.Append(this.NumberOfRapidFireShots);
+                xml.Append("</NumberOfRapidFireShots>");
+            }
+            if (IsSetNumberOfStones()) {
+                xml.Append("<NumberOfStones>");
+                xml.Append(this.NumberOfStones);
+                xml.Append("</NumberOfStones>");
+            }
+            if (IsSetNumberOfStrings()) {
+                xml.Append("<NumberOfStrings>");
+                xml.Append(this.NumberOfStrings);
+                xml.Append("</NumberOfStrings>");
+            }
+            if (IsSetNumberOfTracks()) {
+                xml.Append("<NumberOfTracks>");
+                xml.Append(this.NumberOfTracks);
+                xml.Append("</NumberOfTracks>");
+            }
+            if (IsSetOpticalZoom()) {
+                DecimalWithUnits  opticalZoom = this.OpticalZoom;
+                xml.Append("<OpticalZoom Units=" + "\"" +  EscapeXML(opticalZoom.Units)  + "\"" +  ">");
+                xml.Append(opticalZoom.Value);
+                xml.Append("</OpticalZoom>");
+            } 
+            if (IsSetOriginalReleaseDate()) {
+                xml.Append("<OriginalReleaseDate>");
+                xml.Append(EscapeXML(this.OriginalReleaseDate));
+                xml.Append("</OriginalReleaseDate>");
+            }
+            if (IsSetOutputWattage()) {
+                xml.Append("<OutputWattage>");
+                xml.Append(this.OutputWattage);
+                xml.Append("</OutputWattage>");
+            }
+            if (IsSetPackageDimensions()) {
+                PackageDimensions  packageDimensions = this.PackageDimensions;
+                xml.Append("<PackageDimensions>");
+                xml.Append(packageDimensions.ToXMLFragment());
+                xml.Append("</PackageDimensions>");
+            } 
+            if (IsSetPearlLustre()) {
+                xml.Append("<PearlLustre>");
+                xml.Append(EscapeXML(this.PearlLustre));
+                xml.Append("</PearlLustre>");
+            }
+            if (IsSetPearlMinimumColor()) {
+                xml.Append("<PearlMinimumColor>");
+                xml.Append(EscapeXML(this.PearlMinimumColor));
+                xml.Append("</PearlMinimumColor>");
+            }
+            if (IsSetPearlShape()) {
+                xml.Append("<PearlShape>");
+                xml.Append(EscapeXML(this.PearlShape));
+                xml.Append("</PearlShape>");
+            }
+            if (IsSetPearlStringingMethod()) {
+                xml.Append("<PearlStringingMethod>");
+                xml.Append(EscapeXML(this.PearlStringingMethod));
+                xml.Append("</PearlStringingMethod>");
+            }
+            if (IsSetPearlSurfaceBlemishes()) {
+                xml.Append("<PearlSurfaceBlemishes>");
+                xml.Append(EscapeXML(this.PearlSurfaceBlemishes));
+                xml.Append("</PearlSurfaceBlemishes>");
+            }
+            if (IsSetPearlType()) {
+                xml.Append("<PearlType>");
+                xml.Append(EscapeXML(this.PearlType));
+                xml.Append("</PearlType>");
+            }
+            if (IsSetPearlUniformity()) {
+                xml.Append("<PearlUniformity>");
+                xml.Append(EscapeXML(this.PearlUniformity));
+                xml.Append("</PearlUniformity>");
+            }
+            if (IsSetPhoneNumber()) {
+                xml.Append("<PhoneNumber>");
+                xml.Append(EscapeXML(this.PhoneNumber));
+                xml.Append("</PhoneNumber>");
+            }
+            List<String> photoFlashTypeList  =  this.PhotoFlashType;
+            foreach (String photoFlashType in photoFlashTypeList) { 
+                xml.Append("<PhotoFlashType>");
+                xml.Append(EscapeXML(photoFlashType));
+                xml.Append("</PhotoFlashType>");
+            }	
+            List<String> pictureFormatList  =  this.PictureFormat;
+            foreach (String pictureFormat in pictureFormatList) { 
+                xml.Append("<PictureFormat>");
+                xml.Append(EscapeXML(pictureFormat));
+                xml.Append("</PictureFormat>");
+            }	
+            List<String> platformList  =  this.Platform;
+            foreach (String platform in platformList) { 
+                xml.Append("<Platform>");
+                xml.Append(EscapeXML(platform));
+                xml.Append("</Platform>");
+            }	
+            if (IsSetPriceRating()) {
+                xml.Append("<PriceRating>");
+                xml.Append(this.PriceRating);
+                xml.Append("</PriceRating>");
+            }
+            if (IsSetProcessorCount()) {
+                xml.Append("<ProcessorCount>");
+                xml.Append(this.ProcessorCount);
+                xml.Append("</ProcessorCount>");
+            }
+            if (IsSetProductGroup()) {
+                xml.Append("<ProductGroup>");
+                xml.Append(EscapeXML(this.ProductGroup));
+                xml.Append("</ProductGroup>");
+            }
+            if (IsSetPromotionalTag()) {
+                xml.Append("<PromotionalTag>");
+                xml.Append(EscapeXML(this.PromotionalTag));
+                xml.Append("</PromotionalTag>");
+            }
+            if (IsSetPOBoxShippingExcluded()) {
+                xml.Append("<POBoxShippingExcluded>");
+                xml.Append(EscapeXML(this.POBoxShippingExcluded));
+                xml.Append("</POBoxShippingExcluded>");
+            }
+            if (IsSetPublicationDate()) {
+                xml.Append("<PublicationDate>");
+                xml.Append(EscapeXML(this.PublicationDate));
+                xml.Append("</PublicationDate>");
+            }
+            if (IsSetPublisher()) {
+                xml.Append("<Publisher>");
+                xml.Append(EscapeXML(this.Publisher));
+                xml.Append("</Publisher>");
+            }
+            List<String> purchasingChannelList  =  this.PurchasingChannel;
+            foreach (String purchasingChannel in purchasingChannelList) { 
+                xml.Append("<PurchasingChannel>");
+                xml.Append(EscapeXML(purchasingChannel));
+                xml.Append("</PurchasingChannel>");
+            }	
+            if (IsSetReadingLevel()) {
+                xml.Append("<ReadingLevel>");
+                xml.Append(EscapeXML(this.ReadingLevel));
+                xml.Append("</ReadingLevel>");
+            }
+            if (IsSetRecorderTrackCount()) {
+                xml.Append("<RecorderTrackCount>");
+                xml.Append(this.RecorderTrackCount);
+                xml.Append("</RecorderTrackCount>");
+            }
+            if (IsSetRegionCode()) {
+                xml.Append("<RegionCode>");
+                xml.Append(EscapeXML(this.RegionCode));
+                xml.Append("</RegionCode>");
+            }
+            if (IsSetRegionOfOrigin()) {
+                xml.Append("<RegionOfOrigin>");
+                xml.Append(EscapeXML(this.RegionOfOrigin));
+                xml.Append("</RegionOfOrigin>");
+            }
+            if (IsSetReleaseDate()) {
+                xml.Append("<ReleaseDate>");
+                xml.Append(EscapeXML(this.ReleaseDate));
+                xml.Append("</ReleaseDate>");
+            }
+            List<String> returnMethodList  =  this.ReturnMethod;
+            foreach (String returnMethod in returnMethodList) { 
+                xml.Append("<ReturnMethod>");
+                xml.Append(EscapeXML(returnMethod));
+                xml.Append("</ReturnMethod>");
+            }	
+            if (IsSetRemovableMemory()) {
+                xml.Append("<RemovableMemory>");
+                xml.Append(EscapeXML(this.RemovableMemory));
+                xml.Append("</RemovableMemory>");
+            }
+            if (IsSetResolutionModes()) {
+                xml.Append("<ResolutionModes>");
+                xml.Append(EscapeXML(this.ResolutionModes));
+                xml.Append("</ResolutionModes>");
+            }
+            if (IsSetReturnPolicy()) {
+                xml.Append("<ReturnPolicy>");
+                xml.Append(EscapeXML(this.ReturnPolicy));
+                xml.Append("</ReturnPolicy>");
+            }
+            if (IsSetRingSize()) {
+                xml.Append("<RingSize>");
+                xml.Append(EscapeXML(this.RingSize));
+                xml.Append("</RingSize>");
+            }
+            if (IsSetSafetyWarning()) {
+                xml.Append("<SafetyWarning>");
+                xml.Append(EscapeXML(this.SafetyWarning));
+                xml.Append("</SafetyWarning>");
+            }
+            if (IsSetSalesRestriction()) {
+                xml.Append("<SalesRestriction>");
+                xml.Append(EscapeXML(this.SalesRestriction));
+                xml.Append("</SalesRestriction>");
+            }
+            if (IsSetSecondaryCacheSize()) {
+                NonNegativeIntegerWithUnits  secondaryCacheSize = this.SecondaryCacheSize;
+                xml.Append("<SecondaryCacheSize Units=" + "\"" +  EscapeXML(secondaryCacheSize.Units)  + "\"" +  ">");
+                xml.Append(secondaryCacheSize.Value);
+                xml.Append("</SecondaryCacheSize>");
+            } 
+            if (IsSetSettingType()) {
+                xml.Append("<SettingType>");
+                xml.Append(EscapeXML(this.SettingType));
+                xml.Append("</SettingType>");
+            }
+            if (IsSetSize()) {
+                xml.Append("<Size>");
+                xml.Append(EscapeXML(this.Size));
+                xml.Append("</Size>");
+            }
+            if (IsSetSKU()) {
+                xml.Append("<SKU>");
+                xml.Append(EscapeXML(this.SKU));
+                xml.Append("</SKU>");
+            }
+            if (IsSetSoldInStores()) {
+                xml.Append("<SoldInStores>");
+                xml.Append(EscapeXML(this.SoldInStores));
+                xml.Append("</SoldInStores>");
+            }
+            if (IsSetSizePerPearl()) {
+                xml.Append("<SizePerPearl>");
+                xml.Append(EscapeXML(this.SizePerPearl));
+                xml.Append("</SizePerPearl>");
+            }
+            if (IsSetSkillLevel()) {
+                xml.Append("<SkillLevel>");
+                xml.Append(EscapeXML(this.SkillLevel));
+                xml.Append("</SkillLevel>");
+            }
+            if (IsSetSoundCardDescription()) {
+                xml.Append("<SoundCardDescription>");
+                xml.Append(EscapeXML(this.SoundCardDescription));
+                xml.Append("</SoundCardDescription>");
+            }
+            if (IsSetSpeakerCount()) {
+                xml.Append("<SpeakerCount>");
+                xml.Append(this.SpeakerCount);
+                xml.Append("</SpeakerCount>");
+            }
+            if (IsSetSpeakerDescription()) {
+                xml.Append("<SpeakerDescription>");
+                xml.Append(EscapeXML(this.SpeakerDescription));
+                xml.Append("</SpeakerDescription>");
+            }
+            List<String> specialFeaturesList  =  this.SpecialFeatures;
+            foreach (String specialFeatures in specialFeaturesList) { 
+                xml.Append("<SpecialFeatures>");
+                xml.Append(EscapeXML(specialFeatures));
+                xml.Append("</SpecialFeatures>");
+            }	
+            if (IsSetStoneClarity()) {
+                xml.Append("<StoneClarity>");
+                xml.Append(EscapeXML(this.StoneClarity));
+                xml.Append("</StoneClarity>");
+            }
+            if (IsSetStoneColor()) {
+                xml.Append("<StoneColor>");
+                xml.Append(EscapeXML(this.StoneColor));
+                xml.Append("</StoneColor>");
+            }
+            if (IsSetStoneCut()) {
+                xml.Append("<StoneCut>");
+                xml.Append(EscapeXML(this.StoneCut));
+                xml.Append("</StoneCut>");
+            }
+            if (IsSetStoneShape()) {
+                xml.Append("<StoneShape>");
+                xml.Append(EscapeXML(this.StoneShape));
+                xml.Append("</StoneShape>");
+            }
+            if (IsSetStoneWeight()) {
+                DecimalWithUnits  stoneWeight = this.StoneWeight;
+                xml.Append("<StoneWeight Units=" + "\"" +  EscapeXML(stoneWeight.Units)  + "\"" +  ">");
+                xml.Append(stoneWeight.Value);
+                xml.Append("</StoneWeight>");
+            } 
+            if (IsSetStudio()) {
+                xml.Append("<Studio>");
+                xml.Append(EscapeXML(this.Studio));
+                xml.Append("</Studio>");
+            }
+            if (IsSetSubscriptionLength()) {
+                NonNegativeIntegerWithUnits  subscriptionLength = this.SubscriptionLength;
+                xml.Append("<SubscriptionLength Units=" + "\"" +  EscapeXML(subscriptionLength.Units)  + "\"" +  ">");
+                xml.Append(subscriptionLength.Value);
+                xml.Append("</SubscriptionLength>");
+            } 
+            List<String> supportedImageTypeList  =  this.SupportedImageType;
+            foreach (String supportedImageType in supportedImageTypeList) { 
+                xml.Append("<SupportedImageType>");
+                xml.Append(EscapeXML(supportedImageType));
+                xml.Append("</SupportedImageType>");
+            }	
+            if (IsSetSystemBusSpeed()) {
+                DecimalWithUnits  systemBusSpeed = this.SystemBusSpeed;
+                xml.Append("<SystemBusSpeed Units=" + "\"" +  EscapeXML(systemBusSpeed.Units)  + "\"" +  ">");
+                xml.Append(systemBusSpeed.Value);
+                xml.Append("</SystemBusSpeed>");
+            } 
+            if (IsSetSystemMemorySizeMax()) {
+                DecimalWithUnits  systemMemorySizeMax = this.SystemMemorySizeMax;
+                xml.Append("<SystemMemorySizeMax Units=" + "\"" +  EscapeXML(systemMemorySizeMax.Units)  + "\"" +  ">");
+                xml.Append(systemMemorySizeMax.Value);
+                xml.Append("</SystemMemorySizeMax>");
+            } 
+            if (IsSetSystemMemorySize()) {
+                DecimalWithUnits  systemMemorySize = this.SystemMemorySize;
+                xml.Append("<SystemMemorySize Units=" + "\"" +  EscapeXML(systemMemorySize.Units)  + "\"" +  ">");
+                xml.Append(systemMemorySize.Value);
+                xml.Append("</SystemMemorySize>");
+            } 
+            if (IsSetSystemMemoryType()) {
+                xml.Append("<SystemMemoryType>");
+                xml.Append(EscapeXML(this.SystemMemoryType));
+                xml.Append("</SystemMemoryType>");
+            }
+            if (IsSetTellingPageIndicator()) {
+                xml.Append("<TellingPageIndicator>");
+                xml.Append(EscapeXML(this.TellingPageIndicator));
+                xml.Append("</TellingPageIndicator>");
+            }
+            if (IsSetTheatricalReleaseDate()) {
+                xml.Append("<TheatricalReleaseDate>");
+                xml.Append(EscapeXML(this.TheatricalReleaseDate));
+                xml.Append("</TheatricalReleaseDate>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetTotalDiamondWeight()) {
+                DecimalWithUnits  totalDiamondWeight = this.TotalDiamondWeight;
+                xml.Append("<TotalDiamondWeight Units=" + "\"" +  EscapeXML(totalDiamondWeight.Units)  + "\"" +  ">");
+                xml.Append(totalDiamondWeight.Value);
+                xml.Append("</TotalDiamondWeight>");
+            } 
+            if (IsSetTotalExternalBaysFree()) {
+                xml.Append("<TotalExternalBaysFree>");
+                xml.Append(this.TotalExternalBaysFree);
+                xml.Append("</TotalExternalBaysFree>");
+            }
+            if (IsSetTotalFirewirePorts()) {
+                xml.Append("<TotalFirewirePorts>");
+                xml.Append(this.TotalFirewirePorts);
+                xml.Append("</TotalFirewirePorts>");
+            }
+            if (IsSetTotalGemWeight()) {
+                DecimalWithUnits  totalGemWeight = this.TotalGemWeight;
+                xml.Append("<TotalGemWeight Units=" + "\"" +  EscapeXML(totalGemWeight.Units)  + "\"" +  ">");
+                xml.Append(totalGemWeight.Value);
+                xml.Append("</TotalGemWeight>");
+            } 
+            if (IsSetTotalInternalBaysFree()) {
+                xml.Append("<TotalInternalBaysFree>");
+                xml.Append(this.TotalInternalBaysFree);
+                xml.Append("</TotalInternalBaysFree>");
+            }
+            if (IsSetTotalMetalWeight()) {
+                DecimalWithUnits  totalMetalWeight = this.TotalMetalWeight;
+                xml.Append("<TotalMetalWeight Units=" + "\"" +  EscapeXML(totalMetalWeight.Units)  + "\"" +  ">");
+                xml.Append(totalMetalWeight.Value);
+                xml.Append("</TotalMetalWeight>");
+            } 
+            if (IsSetTotalNTSCPALPorts()) {
+                xml.Append("<TotalNTSCPALPorts>");
+                xml.Append(this.TotalNTSCPALPorts);
+                xml.Append("</TotalNTSCPALPorts>");
+            }
+            if (IsSetTotalParallelPorts()) {
+                xml.Append("<TotalParallelPorts>");
+                xml.Append(this.TotalParallelPorts);
+                xml.Append("</TotalParallelPorts>");
+            }
+            if (IsSetTotalPCCardSlots()) {
+                xml.Append("<TotalPCCardSlots>");
+                xml.Append(this.TotalPCCardSlots);
+                xml.Append("</TotalPCCardSlots>");
+            }
+            if (IsSetTotalPCISlotsFree()) {
+                xml.Append("<TotalPCISlotsFree>");
+                xml.Append(this.TotalPCISlotsFree);
+                xml.Append("</TotalPCISlotsFree>");
+            }
+            if (IsSetTotalSerialPorts()) {
+                xml.Append("<TotalSerialPorts>");
+                xml.Append(this.TotalSerialPorts);
+                xml.Append("</TotalSerialPorts>");
+            }
+            if (IsSetTotalSVideoOutPorts()) {
+                xml.Append("<TotalSVideoOutPorts>");
+                xml.Append(this.TotalSVideoOutPorts);
+                xml.Append("</TotalSVideoOutPorts>");
+            }
+            if (IsSetTotalUSB2Ports()) {
+                xml.Append("<TotalUSB2Ports>");
+                xml.Append(this.TotalUSB2Ports);
+                xml.Append("</TotalUSB2Ports>");
+            }
+            if (IsSetTotalUSBPorts()) {
+                xml.Append("<TotalUSBPorts>");
+                xml.Append(this.TotalUSBPorts);
+                xml.Append("</TotalUSBPorts>");
+            }
+            if (IsSetTotalVGAOutPorts()) {
+                xml.Append("<TotalVGAOutPorts>");
+                xml.Append(this.TotalVGAOutPorts);
+                xml.Append("</TotalVGAOutPorts>");
+            }
+            if (IsSetUPC()) {
+                xml.Append("<UPC>");
+                xml.Append(EscapeXML(this.UPC));
+                xml.Append("</UPC>");
+            }
+            if (IsSetVariationDenomination()) {
+                xml.Append("<VariationDenomination>");
+                xml.Append(EscapeXML(this.VariationDenomination));
+                xml.Append("</VariationDenomination>");
+            }
+            if (IsSetVariationDescription()) {
+                xml.Append("<VariationDescription>");
+                xml.Append(EscapeXML(this.VariationDescription));
+                xml.Append("</VariationDescription>");
+            }
+            if (IsSetVendorRebate()) {
+                VendorRebate  vendorRebate = this.VendorRebate;
+                xml.Append("<VendorRebate>");
+                xml.Append(vendorRebate.ToXMLFragment());
+                xml.Append("</VendorRebate>");
+            } 
+            if (IsSetWarranty()) {
+                xml.Append("<Warranty>");
+                xml.Append(EscapeXML(this.Warranty));
+                xml.Append("</Warranty>");
+            }
+            if (IsSetWatchMovementType()) {
+                xml.Append("<WatchMovementType>");
+                xml.Append(EscapeXML(this.WatchMovementType));
+                xml.Append("</WatchMovementType>");
+            }
+            if (IsSetWebsiteBuyability()) {
+                xml.Append("<WebsiteBuyability>");
+                xml.Append(EscapeXML(this.WebsiteBuyability));
+                xml.Append("</WebsiteBuyability>");
+            }
+            if (IsSetWaterResistanceDepth()) {
+                DecimalWithUnits  waterResistanceDepth = this.WaterResistanceDepth;
+                xml.Append("<WaterResistanceDepth Units=" + "\"" +  EscapeXML(waterResistanceDepth.Units)  + "\"" +  ">");
+                xml.Append(waterResistanceDepth.Value);
+                xml.Append("</WaterResistanceDepth>");
+            } 
+            if (IsSetWirelessMicrophoneFrequency()) {
+                xml.Append("<WirelessMicrophoneFrequency>");
+                xml.Append(this.WirelessMicrophoneFrequency);
+                xml.Append("</WirelessMicrophoneFrequency>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MetaData.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MetaData.cs
new file mode 100644
index 0000000..d14429c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/MetaData.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class MetaData
+    {
+    
+        private String keyField;
+
+        private String valueField;
+
+
+        /// <summary>
+        /// Gets and sets the Key property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Key")]
+        public String Key
+        {
+            get { return this.keyField ; }
+            set { this.keyField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Key property
+        /// </summary>
+        /// <param name="key">Key property</param>
+        /// <returns>this instance</returns>
+        public MetaData WithKey(String key)
+        {
+            this.keyField = key;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Key property is set
+        /// </summary>
+        /// <returns>true if Key property is set</returns>
+        public Boolean IsSetKey()
+        {
+            return  this.keyField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Value property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Value")]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public MetaData WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return  this.valueField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetKey()) {
+                xml.Append("<Key>");
+                xml.Append(EscapeXML(this.Key));
+                xml.Append("</Key>");
+            }
+            if (IsSetValue()) {
+                xml.Append("<Value>");
+                xml.Append(EscapeXML(this.Value));
+                xml.Append("</Value>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewRelease.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewRelease.cs
new file mode 100644
index 0000000..d549c65
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewRelease.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class NewRelease
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public NewRelease WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public NewRelease WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewReleases.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewReleases.cs
new file mode 100644
index 0000000..fcb003c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NewReleases.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class NewReleases
+    {
+    
+        private  List<NewRelease> newReleaseField;
+
+
+        /// <summary>
+        /// Gets and sets the NewRelease property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "NewRelease")]
+        public List<NewRelease> NewRelease
+        {
+            get
+            {
+                if (this.newReleaseField == null)
+                {
+                    this.newReleaseField = new List<NewRelease>();
+                }
+                return this.newReleaseField;
+            }
+            set { this.newReleaseField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NewRelease property
+        /// </summary>
+        /// <param name="list">NewRelease property</param>
+        /// <returns>this instance</returns>
+        public NewReleases WithNewRelease(params NewRelease[] list)
+        {
+            foreach (NewRelease item in list)
+            {
+                NewRelease.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if NewRelease property is set
+        /// </summary>
+        /// <returns>true if NewRelease property is set</returns>
+        public Boolean IsSetNewRelease()
+        {
+            return (NewRelease.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<NewRelease> newReleaseList = this.NewRelease;
+            foreach (NewRelease newRelease in newReleaseList) {
+                xml.Append("<NewRelease>");
+                xml.Append(newRelease.ToXMLFragment());
+                xml.Append("</NewRelease>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NonNegativeIntegerWithUnits.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NonNegativeIntegerWithUnits.cs
new file mode 100644
index 0000000..771b6d4
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/NonNegativeIntegerWithUnits.cs
@@ -0,0 +1,165 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class NonNegativeIntegerWithUnits
+    {
+    
+        private  String unitsField;
+        private  Decimal valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Units property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Units")]
+        public String Units
+        {
+            get { return this.unitsField ; }
+            set { this.unitsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Units property
+        /// </summary>
+        /// <param name="units">Units property</param>
+        /// <returns>this instance</returns>
+        public NonNegativeIntegerWithUnits WithUnits(String units)
+        {
+            this.unitsField = units;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Units property is set
+        /// </summary>
+        /// <returns>true if Units property is set</returns>
+        public Boolean IsSetUnits()
+        {
+            return this.unitsField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlTextAttribute()]
+        public Decimal Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public NonNegativeIntegerWithUnits WithValue(Decimal value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return true;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offer.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offer.cs
new file mode 100644
index 0000000..46cdc15
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offer.cs
@@ -0,0 +1,363 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Offer
+    {
+    
+        private  Merchant merchantField;
+        private  Seller sellerField;
+        private  OfferAttributes offerAttributesField;
+        private  List<OfferListing> offerListingField;
+
+        private  LoyaltyPoints loyaltyPointsField;
+        private  Promotions promotionsField;
+
+        /// <summary>
+        /// Gets and sets the Merchant property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Merchant")]
+        public Merchant Merchant
+        {
+            get { return this.merchantField ; }
+            set { this.merchantField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Merchant property
+        /// </summary>
+        /// <param name="merchant">Merchant property</param>
+        /// <returns>this instance</returns>
+        public Offer WithMerchant(Merchant merchant)
+        {
+            this.merchantField = merchant;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Merchant property is set
+        /// </summary>
+        /// <returns>true if Merchant property is set</returns>
+        public Boolean IsSetMerchant()
+        {
+            return this.merchantField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Seller property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Seller")]
+        public Seller Seller
+        {
+            get { return this.sellerField ; }
+            set { this.sellerField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Seller property
+        /// </summary>
+        /// <param name="seller">Seller property</param>
+        /// <returns>this instance</returns>
+        public Offer WithSeller(Seller seller)
+        {
+            this.sellerField = seller;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Seller property is set
+        /// </summary>
+        /// <returns>true if Seller property is set</returns>
+        public Boolean IsSetSeller()
+        {
+            return this.sellerField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OfferAttributes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferAttributes")]
+        public OfferAttributes OfferAttributes
+        {
+            get { return this.offerAttributesField ; }
+            set { this.offerAttributesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferAttributes property
+        /// </summary>
+        /// <param name="offerAttributes">OfferAttributes property</param>
+        /// <returns>this instance</returns>
+        public Offer WithOfferAttributes(OfferAttributes offerAttributes)
+        {
+            this.offerAttributesField = offerAttributes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferAttributes property is set
+        /// </summary>
+        /// <returns>true if OfferAttributes property is set</returns>
+        public Boolean IsSetOfferAttributes()
+        {
+            return this.offerAttributesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the OfferListing property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferListing")]
+        public List<OfferListing> OfferListing
+        {
+            get
+            {
+                if (this.offerListingField == null)
+                {
+                    this.offerListingField = new List<OfferListing>();
+                }
+                return this.offerListingField;
+            }
+            set { this.offerListingField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferListing property
+        /// </summary>
+        /// <param name="list">OfferListing property</param>
+        /// <returns>this instance</returns>
+        public Offer WithOfferListing(params OfferListing[] list)
+        {
+            foreach (OfferListing item in list)
+            {
+                OfferListing.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if OfferListing property is set
+        /// </summary>
+        /// <returns>true if OfferListing property is set</returns>
+        public Boolean IsSetOfferListing()
+        {
+            return (OfferListing.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the LoyaltyPoints property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LoyaltyPoints")]
+        public LoyaltyPoints LoyaltyPoints
+        {
+            get { return this.loyaltyPointsField ; }
+            set { this.loyaltyPointsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LoyaltyPoints property
+        /// </summary>
+        /// <param name="loyaltyPoints">LoyaltyPoints property</param>
+        /// <returns>this instance</returns>
+        public Offer WithLoyaltyPoints(LoyaltyPoints loyaltyPoints)
+        {
+            this.loyaltyPointsField = loyaltyPoints;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LoyaltyPoints property is set
+        /// </summary>
+        /// <returns>true if LoyaltyPoints property is set</returns>
+        public Boolean IsSetLoyaltyPoints()
+        {
+            return this.loyaltyPointsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Promotions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Promotions")]
+        public Promotions Promotions
+        {
+            get { return this.promotionsField ; }
+            set { this.promotionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Promotions property
+        /// </summary>
+        /// <param name="promotions">Promotions property</param>
+        /// <returns>this instance</returns>
+        public Offer WithPromotions(Promotions promotions)
+        {
+            this.promotionsField = promotions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Promotions property is set
+        /// </summary>
+        /// <returns>true if Promotions property is set</returns>
+        public Boolean IsSetPromotions()
+        {
+            return this.promotionsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetMerchant()) {
+                Merchant  merchant = this.Merchant;
+                xml.Append("<Merchant>");
+                xml.Append(merchant.ToXMLFragment());
+                xml.Append("</Merchant>");
+            } 
+            if (IsSetSeller()) {
+                Seller  seller = this.Seller;
+                xml.Append("<Seller>");
+                xml.Append(seller.ToXMLFragment());
+                xml.Append("</Seller>");
+            } 
+            if (IsSetOfferAttributes()) {
+                OfferAttributes  offerAttributes = this.OfferAttributes;
+                xml.Append("<OfferAttributes>");
+                xml.Append(offerAttributes.ToXMLFragment());
+                xml.Append("</OfferAttributes>");
+            } 
+            List<OfferListing> offerListingList = this.OfferListing;
+            foreach (OfferListing offerListing in offerListingList) {
+                xml.Append("<OfferListing>");
+                xml.Append(offerListing.ToXMLFragment());
+                xml.Append("</OfferListing>");
+            }
+            if (IsSetLoyaltyPoints()) {
+                LoyaltyPoints  loyaltyPoints = this.LoyaltyPoints;
+                xml.Append("<LoyaltyPoints>");
+                xml.Append(loyaltyPoints.ToXMLFragment());
+                xml.Append("</LoyaltyPoints>");
+            } 
+            if (IsSetPromotions()) {
+                Promotions  promotions = this.Promotions;
+                xml.Append("<Promotions>");
+                xml.Append(promotions.ToXMLFragment());
+                xml.Append("</Promotions>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferAttributes.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferAttributes.cs
new file mode 100644
index 0000000..3b5dfab
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferAttributes.cs
@@ -0,0 +1,305 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OfferAttributes
+    {
+    
+        private String conditionField;
+
+        private String subConditionField;
+
+        private String conditionNoteField;
+
+        private Boolean? willShipExpeditedField;
+
+        private Boolean? willShipInternationalField;
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public String Condition
+        {
+            get { return this.conditionField ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public OfferAttributes WithCondition(String condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return  this.conditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SubCondition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubCondition")]
+        public String SubCondition
+        {
+            get { return this.subConditionField ; }
+            set { this.subConditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubCondition property
+        /// </summary>
+        /// <param name="subCondition">SubCondition property</param>
+        /// <returns>this instance</returns>
+        public OfferAttributes WithSubCondition(String subCondition)
+        {
+            this.subConditionField = subCondition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubCondition property is set
+        /// </summary>
+        /// <returns>true if SubCondition property is set</returns>
+        public Boolean IsSetSubCondition()
+        {
+            return  this.subConditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ConditionNote property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ConditionNote")]
+        public String ConditionNote
+        {
+            get { return this.conditionNoteField ; }
+            set { this.conditionNoteField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ConditionNote property
+        /// </summary>
+        /// <param name="conditionNote">ConditionNote property</param>
+        /// <returns>this instance</returns>
+        public OfferAttributes WithConditionNote(String conditionNote)
+        {
+            this.conditionNoteField = conditionNote;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ConditionNote property is set
+        /// </summary>
+        /// <returns>true if ConditionNote property is set</returns>
+        public Boolean IsSetConditionNote()
+        {
+            return  this.conditionNoteField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WillShipExpedited property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WillShipExpedited")]
+        public Boolean WillShipExpedited
+        {
+            get { return this.willShipExpeditedField.GetValueOrDefault() ; }
+            set { this.willShipExpeditedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WillShipExpedited property
+        /// </summary>
+        /// <param name="willShipExpedited">WillShipExpedited property</param>
+        /// <returns>this instance</returns>
+        public OfferAttributes WithWillShipExpedited(Boolean willShipExpedited)
+        {
+            this.willShipExpeditedField = willShipExpedited;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WillShipExpedited property is set
+        /// </summary>
+        /// <returns>true if WillShipExpedited property is set</returns>
+        public Boolean IsSetWillShipExpedited()
+        {
+            return  this.willShipExpeditedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WillShipInternational property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WillShipInternational")]
+        public Boolean WillShipInternational
+        {
+            get { return this.willShipInternationalField.GetValueOrDefault() ; }
+            set { this.willShipInternationalField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WillShipInternational property
+        /// </summary>
+        /// <param name="willShipInternational">WillShipInternational property</param>
+        /// <returns>this instance</returns>
+        public OfferAttributes WithWillShipInternational(Boolean willShipInternational)
+        {
+            this.willShipInternationalField = willShipInternational;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WillShipInternational property is set
+        /// </summary>
+        /// <returns>true if WillShipInternational property is set</returns>
+        public Boolean IsSetWillShipInternational()
+        {
+            return  this.willShipInternationalField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(EscapeXML(this.Condition));
+                xml.Append("</Condition>");
+            }
+            if (IsSetSubCondition()) {
+                xml.Append("<SubCondition>");
+                xml.Append(EscapeXML(this.SubCondition));
+                xml.Append("</SubCondition>");
+            }
+            if (IsSetConditionNote()) {
+                xml.Append("<ConditionNote>");
+                xml.Append(EscapeXML(this.ConditionNote));
+                xml.Append("</ConditionNote>");
+            }
+            if (IsSetWillShipExpedited()) {
+                xml.Append("<WillShipExpedited>");
+                xml.Append(this.WillShipExpedited);
+                xml.Append("</WillShipExpedited>");
+            }
+            if (IsSetWillShipInternational()) {
+                xml.Append("<WillShipInternational>");
+                xml.Append(this.WillShipInternational);
+                xml.Append("</WillShipInternational>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferListing.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferListing.cs
new file mode 100644
index 0000000..aec3c1d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferListing.cs
@@ -0,0 +1,707 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OfferListing
+    {
+    
+        private String offerListingIdField;
+
+        private String exchangeIdField;
+
+        private  Price priceField;
+        private  Price salePriceField;
+        private  Price amountSavedField;
+        private Decimal? percentageSavedField;
+
+        private String availabilityField;
+
+        private  AvailabilityAttributes availabilityAttributesField;
+        private Decimal? quantityField;
+
+        private  Address ISPUStoreAddressField;
+        private String ISPUStoreHoursField;
+
+        private Boolean? isEligibleForSuperSaverShippingField;
+
+        private String salesRestrictionField;
+
+        private  List<ShippingCharge> shippingChargeField;
+
+
+        /// <summary>
+        /// Gets and sets the OfferListingId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferListingId")]
+        public String OfferListingId
+        {
+            get { return this.offerListingIdField ; }
+            set { this.offerListingIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferListingId property
+        /// </summary>
+        /// <param name="offerListingId">OfferListingId property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithOfferListingId(String offerListingId)
+        {
+            this.offerListingIdField = offerListingId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferListingId property is set
+        /// </summary>
+        /// <returns>true if OfferListingId property is set</returns>
+        public Boolean IsSetOfferListingId()
+        {
+            return  this.offerListingIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ExchangeId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ExchangeId")]
+        public String ExchangeId
+        {
+            get { return this.exchangeIdField ; }
+            set { this.exchangeIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ExchangeId property
+        /// </summary>
+        /// <param name="exchangeId">ExchangeId property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithExchangeId(String exchangeId)
+        {
+            this.exchangeIdField = exchangeId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ExchangeId property is set
+        /// </summary>
+        /// <returns>true if ExchangeId property is set</returns>
+        public Boolean IsSetExchangeId()
+        {
+            return  this.exchangeIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Price property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Price")]
+        public Price Price
+        {
+            get { return this.priceField ; }
+            set { this.priceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Price property
+        /// </summary>
+        /// <param name="price">Price property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithPrice(Price price)
+        {
+            this.priceField = price;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Price property is set
+        /// </summary>
+        /// <returns>true if Price property is set</returns>
+        public Boolean IsSetPrice()
+        {
+            return this.priceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SalePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SalePrice")]
+        public Price SalePrice
+        {
+            get { return this.salePriceField ; }
+            set { this.salePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SalePrice property
+        /// </summary>
+        /// <param name="salePrice">SalePrice property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithSalePrice(Price salePrice)
+        {
+            this.salePriceField = salePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SalePrice property is set
+        /// </summary>
+        /// <returns>true if SalePrice property is set</returns>
+        public Boolean IsSetSalePrice()
+        {
+            return this.salePriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AmountSaved property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AmountSaved")]
+        public Price AmountSaved
+        {
+            get { return this.amountSavedField ; }
+            set { this.amountSavedField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AmountSaved property
+        /// </summary>
+        /// <param name="amountSaved">AmountSaved property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithAmountSaved(Price amountSaved)
+        {
+            this.amountSavedField = amountSaved;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AmountSaved property is set
+        /// </summary>
+        /// <returns>true if AmountSaved property is set</returns>
+        public Boolean IsSetAmountSaved()
+        {
+            return this.amountSavedField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the PercentageSaved property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PercentageSaved")]
+        public Decimal PercentageSaved
+        {
+            get { return this.percentageSavedField.GetValueOrDefault() ; }
+            set { this.percentageSavedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PercentageSaved property
+        /// </summary>
+        /// <param name="percentageSaved">PercentageSaved property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithPercentageSaved(Decimal percentageSaved)
+        {
+            this.percentageSavedField = percentageSaved;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PercentageSaved property is set
+        /// </summary>
+        /// <returns>true if PercentageSaved property is set</returns>
+        public Boolean IsSetPercentageSaved()
+        {
+            return  this.percentageSavedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Availability property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Availability")]
+        public String Availability
+        {
+            get { return this.availabilityField ; }
+            set { this.availabilityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Availability property
+        /// </summary>
+        /// <param name="availability">Availability property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithAvailability(String availability)
+        {
+            this.availabilityField = availability;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Availability property is set
+        /// </summary>
+        /// <returns>true if Availability property is set</returns>
+        public Boolean IsSetAvailability()
+        {
+            return  this.availabilityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the AvailabilityAttributes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AvailabilityAttributes")]
+        public AvailabilityAttributes AvailabilityAttributes
+        {
+            get { return this.availabilityAttributesField ; }
+            set { this.availabilityAttributesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AvailabilityAttributes property
+        /// </summary>
+        /// <param name="availabilityAttributes">AvailabilityAttributes property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithAvailabilityAttributes(AvailabilityAttributes availabilityAttributes)
+        {
+            this.availabilityAttributesField = availabilityAttributes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AvailabilityAttributes property is set
+        /// </summary>
+        /// <returns>true if AvailabilityAttributes property is set</returns>
+        public Boolean IsSetAvailabilityAttributes()
+        {
+            return this.availabilityAttributesField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ISPUStoreAddress property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUStoreAddress")]
+        public Address ISPUStoreAddress
+        {
+            get { return this.ISPUStoreAddressField ; }
+            set { this.ISPUStoreAddressField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUStoreAddress property
+        /// </summary>
+        /// <param name="ISPUStoreAddress">ISPUStoreAddress property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithISPUStoreAddress(Address ISPUStoreAddress)
+        {
+            this.ISPUStoreAddressField = ISPUStoreAddress;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUStoreAddress property is set
+        /// </summary>
+        /// <returns>true if ISPUStoreAddress property is set</returns>
+        public Boolean IsSetISPUStoreAddress()
+        {
+            return this.ISPUStoreAddressField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ISPUStoreHours property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUStoreHours")]
+        public String ISPUStoreHours
+        {
+            get { return this.ISPUStoreHoursField ; }
+            set { this.ISPUStoreHoursField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUStoreHours property
+        /// </summary>
+        /// <param name="ISPUStoreHours">ISPUStoreHours property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithISPUStoreHours(String ISPUStoreHours)
+        {
+            this.ISPUStoreHoursField = ISPUStoreHours;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUStoreHours property is set
+        /// </summary>
+        /// <returns>true if ISPUStoreHours property is set</returns>
+        public Boolean IsSetISPUStoreHours()
+        {
+            return  this.ISPUStoreHoursField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsEligibleForSuperSaverShipping property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsEligibleForSuperSaverShipping")]
+        public Boolean IsEligibleForSuperSaverShipping
+        {
+            get { return this.isEligibleForSuperSaverShippingField.GetValueOrDefault() ; }
+            set { this.isEligibleForSuperSaverShippingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsEligibleForSuperSaverShipping property
+        /// </summary>
+        /// <param name="isEligibleForSuperSaverShipping">IsEligibleForSuperSaverShipping property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithIsEligibleForSuperSaverShipping(Boolean isEligibleForSuperSaverShipping)
+        {
+            this.isEligibleForSuperSaverShippingField = isEligibleForSuperSaverShipping;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsEligibleForSuperSaverShipping property is set
+        /// </summary>
+        /// <returns>true if IsEligibleForSuperSaverShipping property is set</returns>
+        public Boolean IsSetIsEligibleForSuperSaverShipping()
+        {
+            return  this.isEligibleForSuperSaverShippingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SalesRestriction property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SalesRestriction")]
+        public String SalesRestriction
+        {
+            get { return this.salesRestrictionField ; }
+            set { this.salesRestrictionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SalesRestriction property
+        /// </summary>
+        /// <param name="salesRestriction">SalesRestriction property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithSalesRestriction(String salesRestriction)
+        {
+            this.salesRestrictionField = salesRestriction;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SalesRestriction property is set
+        /// </summary>
+        /// <returns>true if SalesRestriction property is set</returns>
+        public Boolean IsSetSalesRestriction()
+        {
+            return  this.salesRestrictionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ShippingCharge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShippingCharge")]
+        public List<ShippingCharge> ShippingCharge
+        {
+            get
+            {
+                if (this.shippingChargeField == null)
+                {
+                    this.shippingChargeField = new List<ShippingCharge>();
+                }
+                return this.shippingChargeField;
+            }
+            set { this.shippingChargeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShippingCharge property
+        /// </summary>
+        /// <param name="list">ShippingCharge property</param>
+        /// <returns>this instance</returns>
+        public OfferListing WithShippingCharge(params ShippingCharge[] list)
+        {
+            foreach (ShippingCharge item in list)
+            {
+                ShippingCharge.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if ShippingCharge property is set
+        /// </summary>
+        /// <returns>true if ShippingCharge property is set</returns>
+        public Boolean IsSetShippingCharge()
+        {
+            return (ShippingCharge.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetOfferListingId()) {
+                xml.Append("<OfferListingId>");
+                xml.Append(EscapeXML(this.OfferListingId));
+                xml.Append("</OfferListingId>");
+            }
+            if (IsSetExchangeId()) {
+                xml.Append("<ExchangeId>");
+                xml.Append(EscapeXML(this.ExchangeId));
+                xml.Append("</ExchangeId>");
+            }
+            if (IsSetPrice()) {
+                Price  price = this.Price;
+                xml.Append("<Price>");
+                xml.Append(price.ToXMLFragment());
+                xml.Append("</Price>");
+            } 
+            if (IsSetSalePrice()) {
+                Price  salePrice = this.SalePrice;
+                xml.Append("<SalePrice>");
+                xml.Append(salePrice.ToXMLFragment());
+                xml.Append("</SalePrice>");
+            } 
+            if (IsSetAmountSaved()) {
+                Price  amountSaved = this.AmountSaved;
+                xml.Append("<AmountSaved>");
+                xml.Append(amountSaved.ToXMLFragment());
+                xml.Append("</AmountSaved>");
+            } 
+            if (IsSetPercentageSaved()) {
+                xml.Append("<PercentageSaved>");
+                xml.Append(this.PercentageSaved);
+                xml.Append("</PercentageSaved>");
+            }
+            if (IsSetAvailability()) {
+                xml.Append("<Availability>");
+                xml.Append(EscapeXML(this.Availability));
+                xml.Append("</Availability>");
+            }
+            if (IsSetAvailabilityAttributes()) {
+                AvailabilityAttributes  availabilityAttributes = this.AvailabilityAttributes;
+                xml.Append("<AvailabilityAttributes>");
+                xml.Append(availabilityAttributes.ToXMLFragment());
+                xml.Append("</AvailabilityAttributes>");
+            } 
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            if (IsSetISPUStoreAddress()) {
+                Address  ISPUStoreAddress = this.ISPUStoreAddress;
+                xml.Append("<ISPUStoreAddress>");
+                xml.Append(ISPUStoreAddress.ToXMLFragment());
+                xml.Append("</ISPUStoreAddress>");
+            } 
+            if (IsSetISPUStoreHours()) {
+                xml.Append("<ISPUStoreHours>");
+                xml.Append(EscapeXML(this.ISPUStoreHours));
+                xml.Append("</ISPUStoreHours>");
+            }
+            if (IsSetIsEligibleForSuperSaverShipping()) {
+                xml.Append("<IsEligibleForSuperSaverShipping>");
+                xml.Append(this.IsEligibleForSuperSaverShipping);
+                xml.Append("</IsEligibleForSuperSaverShipping>");
+            }
+            if (IsSetSalesRestriction()) {
+                xml.Append("<SalesRestriction>");
+                xml.Append(EscapeXML(this.SalesRestriction));
+                xml.Append("</SalesRestriction>");
+            }
+            List<ShippingCharge> shippingChargeList = this.ShippingCharge;
+            foreach (ShippingCharge shippingCharge in shippingChargeList) {
+                xml.Append("<ShippingCharge>");
+                xml.Append(shippingCharge.ToXMLFragment());
+                xml.Append("</ShippingCharge>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferSummary.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferSummary.cs
new file mode 100644
index 0000000..f3c9ba8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OfferSummary.cs
@@ -0,0 +1,438 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OfferSummary
+    {
+    
+        private  Price lowestNewPriceField;
+        private  Price lowestUsedPriceField;
+        private  Price lowestCollectiblePriceField;
+        private  Price lowestRefurbishedPriceField;
+        private String totalNewField;
+
+        private String totalUsedField;
+
+        private String totalCollectibleField;
+
+        private String totalRefurbishedField;
+
+
+        /// <summary>
+        /// Gets and sets the LowestNewPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestNewPrice")]
+        public Price LowestNewPrice
+        {
+            get { return this.lowestNewPriceField ; }
+            set { this.lowestNewPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestNewPrice property
+        /// </summary>
+        /// <param name="lowestNewPrice">LowestNewPrice property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithLowestNewPrice(Price lowestNewPrice)
+        {
+            this.lowestNewPriceField = lowestNewPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestNewPrice property is set
+        /// </summary>
+        /// <returns>true if LowestNewPrice property is set</returns>
+        public Boolean IsSetLowestNewPrice()
+        {
+            return this.lowestNewPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LowestUsedPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestUsedPrice")]
+        public Price LowestUsedPrice
+        {
+            get { return this.lowestUsedPriceField ; }
+            set { this.lowestUsedPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestUsedPrice property
+        /// </summary>
+        /// <param name="lowestUsedPrice">LowestUsedPrice property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithLowestUsedPrice(Price lowestUsedPrice)
+        {
+            this.lowestUsedPriceField = lowestUsedPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestUsedPrice property is set
+        /// </summary>
+        /// <returns>true if LowestUsedPrice property is set</returns>
+        public Boolean IsSetLowestUsedPrice()
+        {
+            return this.lowestUsedPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LowestCollectiblePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestCollectiblePrice")]
+        public Price LowestCollectiblePrice
+        {
+            get { return this.lowestCollectiblePriceField ; }
+            set { this.lowestCollectiblePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestCollectiblePrice property
+        /// </summary>
+        /// <param name="lowestCollectiblePrice">LowestCollectiblePrice property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithLowestCollectiblePrice(Price lowestCollectiblePrice)
+        {
+            this.lowestCollectiblePriceField = lowestCollectiblePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestCollectiblePrice property is set
+        /// </summary>
+        /// <returns>true if LowestCollectiblePrice property is set</returns>
+        public Boolean IsSetLowestCollectiblePrice()
+        {
+            return this.lowestCollectiblePriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LowestRefurbishedPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestRefurbishedPrice")]
+        public Price LowestRefurbishedPrice
+        {
+            get { return this.lowestRefurbishedPriceField ; }
+            set { this.lowestRefurbishedPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestRefurbishedPrice property
+        /// </summary>
+        /// <param name="lowestRefurbishedPrice">LowestRefurbishedPrice property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithLowestRefurbishedPrice(Price lowestRefurbishedPrice)
+        {
+            this.lowestRefurbishedPriceField = lowestRefurbishedPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestRefurbishedPrice property is set
+        /// </summary>
+        /// <returns>true if LowestRefurbishedPrice property is set</returns>
+        public Boolean IsSetLowestRefurbishedPrice()
+        {
+            return this.lowestRefurbishedPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalNew property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalNew")]
+        public String TotalNew
+        {
+            get { return this.totalNewField ; }
+            set { this.totalNewField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalNew property
+        /// </summary>
+        /// <param name="totalNew">TotalNew property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithTotalNew(String totalNew)
+        {
+            this.totalNewField = totalNew;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalNew property is set
+        /// </summary>
+        /// <returns>true if TotalNew property is set</returns>
+        public Boolean IsSetTotalNew()
+        {
+            return  this.totalNewField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUsed property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUsed")]
+        public String TotalUsed
+        {
+            get { return this.totalUsedField ; }
+            set { this.totalUsedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUsed property
+        /// </summary>
+        /// <param name="totalUsed">TotalUsed property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithTotalUsed(String totalUsed)
+        {
+            this.totalUsedField = totalUsed;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUsed property is set
+        /// </summary>
+        /// <returns>true if TotalUsed property is set</returns>
+        public Boolean IsSetTotalUsed()
+        {
+            return  this.totalUsedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalCollectible property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalCollectible")]
+        public String TotalCollectible
+        {
+            get { return this.totalCollectibleField ; }
+            set { this.totalCollectibleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalCollectible property
+        /// </summary>
+        /// <param name="totalCollectible">TotalCollectible property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithTotalCollectible(String totalCollectible)
+        {
+            this.totalCollectibleField = totalCollectible;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalCollectible property is set
+        /// </summary>
+        /// <returns>true if TotalCollectible property is set</returns>
+        public Boolean IsSetTotalCollectible()
+        {
+            return  this.totalCollectibleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalRefurbished property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalRefurbished")]
+        public String TotalRefurbished
+        {
+            get { return this.totalRefurbishedField ; }
+            set { this.totalRefurbishedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalRefurbished property
+        /// </summary>
+        /// <param name="totalRefurbished">TotalRefurbished property</param>
+        /// <returns>this instance</returns>
+        public OfferSummary WithTotalRefurbished(String totalRefurbished)
+        {
+            this.totalRefurbishedField = totalRefurbished;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalRefurbished property is set
+        /// </summary>
+        /// <returns>true if TotalRefurbished property is set</returns>
+        public Boolean IsSetTotalRefurbished()
+        {
+            return  this.totalRefurbishedField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetLowestNewPrice()) {
+                Price  lowestNewPrice = this.LowestNewPrice;
+                xml.Append("<LowestNewPrice>");
+                xml.Append(lowestNewPrice.ToXMLFragment());
+                xml.Append("</LowestNewPrice>");
+            } 
+            if (IsSetLowestUsedPrice()) {
+                Price  lowestUsedPrice = this.LowestUsedPrice;
+                xml.Append("<LowestUsedPrice>");
+                xml.Append(lowestUsedPrice.ToXMLFragment());
+                xml.Append("</LowestUsedPrice>");
+            } 
+            if (IsSetLowestCollectiblePrice()) {
+                Price  lowestCollectiblePrice = this.LowestCollectiblePrice;
+                xml.Append("<LowestCollectiblePrice>");
+                xml.Append(lowestCollectiblePrice.ToXMLFragment());
+                xml.Append("</LowestCollectiblePrice>");
+            } 
+            if (IsSetLowestRefurbishedPrice()) {
+                Price  lowestRefurbishedPrice = this.LowestRefurbishedPrice;
+                xml.Append("<LowestRefurbishedPrice>");
+                xml.Append(lowestRefurbishedPrice.ToXMLFragment());
+                xml.Append("</LowestRefurbishedPrice>");
+            } 
+            if (IsSetTotalNew()) {
+                xml.Append("<TotalNew>");
+                xml.Append(EscapeXML(this.TotalNew));
+                xml.Append("</TotalNew>");
+            }
+            if (IsSetTotalUsed()) {
+                xml.Append("<TotalUsed>");
+                xml.Append(EscapeXML(this.TotalUsed));
+                xml.Append("</TotalUsed>");
+            }
+            if (IsSetTotalCollectible()) {
+                xml.Append("<TotalCollectible>");
+                xml.Append(EscapeXML(this.TotalCollectible));
+                xml.Append("</TotalCollectible>");
+            }
+            if (IsSetTotalRefurbished()) {
+                xml.Append("<TotalRefurbished>");
+                xml.Append(EscapeXML(this.TotalRefurbished));
+                xml.Append("</TotalRefurbished>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offers.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offers.cs
new file mode 100644
index 0000000..24f380f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Offers.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Offers
+    {
+    
+        private Decimal? totalOffersField;
+
+        private Decimal? totalOfferPagesField;
+
+        private  List<Offer> offerField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalOffers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalOffers")]
+        public Decimal TotalOffers
+        {
+            get { return this.totalOffersField.GetValueOrDefault() ; }
+            set { this.totalOffersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalOffers property
+        /// </summary>
+        /// <param name="totalOffers">TotalOffers property</param>
+        /// <returns>this instance</returns>
+        public Offers WithTotalOffers(Decimal totalOffers)
+        {
+            this.totalOffersField = totalOffers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalOffers property is set
+        /// </summary>
+        /// <returns>true if TotalOffers property is set</returns>
+        public Boolean IsSetTotalOffers()
+        {
+            return  this.totalOffersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalOfferPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalOfferPages")]
+        public Decimal TotalOfferPages
+        {
+            get { return this.totalOfferPagesField.GetValueOrDefault() ; }
+            set { this.totalOfferPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalOfferPages property
+        /// </summary>
+        /// <param name="totalOfferPages">TotalOfferPages property</param>
+        /// <returns>this instance</returns>
+        public Offers WithTotalOfferPages(Decimal totalOfferPages)
+        {
+            this.totalOfferPagesField = totalOfferPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalOfferPages property is set
+        /// </summary>
+        /// <returns>true if TotalOfferPages property is set</returns>
+        public Boolean IsSetTotalOfferPages()
+        {
+            return  this.totalOfferPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Offer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Offer")]
+        public List<Offer> Offer
+        {
+            get
+            {
+                if (this.offerField == null)
+                {
+                    this.offerField = new List<Offer>();
+                }
+                return this.offerField;
+            }
+            set { this.offerField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Offer property
+        /// </summary>
+        /// <param name="list">Offer property</param>
+        /// <returns>this instance</returns>
+        public Offers WithOffer(params Offer[] list)
+        {
+            foreach (Offer item in list)
+            {
+                Offer.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Offer property is set
+        /// </summary>
+        /// <returns>true if Offer property is set</returns>
+        public Boolean IsSetOffer()
+        {
+            return (Offer.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalOffers()) {
+                xml.Append("<TotalOffers>");
+                xml.Append(this.TotalOffers);
+                xml.Append("</TotalOffers>");
+            }
+            if (IsSetTotalOfferPages()) {
+                xml.Append("<TotalOfferPages>");
+                xml.Append(this.TotalOfferPages);
+                xml.Append("</TotalOfferPages>");
+            }
+            List<Offer> offerList = this.Offer;
+            foreach (Offer offer in offerList) {
+                xml.Append("<Offer>");
+                xml.Append(offer.ToXMLFragment());
+                xml.Append("</Offer>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationInformation.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationInformation.cs
new file mode 100644
index 0000000..249da27
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationInformation.cs
@@ -0,0 +1,352 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OperationInformation
+    {
+    
+        private String nameField;
+
+        private String descriptionField;
+
+        private  RequiredParameters requiredParametersField;
+        private  AvailableParameters availableParametersField;
+        private  DefaultResponseGroups defaultResponseGroupsField;
+        private  AvailableResponseGroups availableResponseGroupsField;
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Description property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Description")]
+        public String Description
+        {
+            get { return this.descriptionField ; }
+            set { this.descriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Description property
+        /// </summary>
+        /// <param name="description">Description property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithDescription(String description)
+        {
+            this.descriptionField = description;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Description property is set
+        /// </summary>
+        /// <returns>true if Description property is set</returns>
+        public Boolean IsSetDescription()
+        {
+            return  this.descriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the RequiredParameters property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RequiredParameters")]
+        public RequiredParameters RequiredParameters
+        {
+            get { return this.requiredParametersField ; }
+            set { this.requiredParametersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RequiredParameters property
+        /// </summary>
+        /// <param name="requiredParameters">RequiredParameters property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithRequiredParameters(RequiredParameters requiredParameters)
+        {
+            this.requiredParametersField = requiredParameters;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RequiredParameters property is set
+        /// </summary>
+        /// <returns>true if RequiredParameters property is set</returns>
+        public Boolean IsSetRequiredParameters()
+        {
+            return this.requiredParametersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AvailableParameters property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AvailableParameters")]
+        public AvailableParameters AvailableParameters
+        {
+            get { return this.availableParametersField ; }
+            set { this.availableParametersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AvailableParameters property
+        /// </summary>
+        /// <param name="availableParameters">AvailableParameters property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithAvailableParameters(AvailableParameters availableParameters)
+        {
+            this.availableParametersField = availableParameters;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AvailableParameters property is set
+        /// </summary>
+        /// <returns>true if AvailableParameters property is set</returns>
+        public Boolean IsSetAvailableParameters()
+        {
+            return this.availableParametersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DefaultResponseGroups property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DefaultResponseGroups")]
+        public DefaultResponseGroups DefaultResponseGroups
+        {
+            get { return this.defaultResponseGroupsField ; }
+            set { this.defaultResponseGroupsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DefaultResponseGroups property
+        /// </summary>
+        /// <param name="defaultResponseGroups">DefaultResponseGroups property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithDefaultResponseGroups(DefaultResponseGroups defaultResponseGroups)
+        {
+            this.defaultResponseGroupsField = defaultResponseGroups;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DefaultResponseGroups property is set
+        /// </summary>
+        /// <returns>true if DefaultResponseGroups property is set</returns>
+        public Boolean IsSetDefaultResponseGroups()
+        {
+            return this.defaultResponseGroupsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AvailableResponseGroups property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AvailableResponseGroups")]
+        public AvailableResponseGroups AvailableResponseGroups
+        {
+            get { return this.availableResponseGroupsField ; }
+            set { this.availableResponseGroupsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AvailableResponseGroups property
+        /// </summary>
+        /// <param name="availableResponseGroups">AvailableResponseGroups property</param>
+        /// <returns>this instance</returns>
+        public OperationInformation WithAvailableResponseGroups(AvailableResponseGroups availableResponseGroups)
+        {
+            this.availableResponseGroupsField = availableResponseGroups;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AvailableResponseGroups property is set
+        /// </summary>
+        /// <returns>true if AvailableResponseGroups property is set</returns>
+        public Boolean IsSetAvailableResponseGroups()
+        {
+            return this.availableResponseGroupsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetDescription()) {
+                xml.Append("<Description>");
+                xml.Append(EscapeXML(this.Description));
+                xml.Append("</Description>");
+            }
+            if (IsSetRequiredParameters()) {
+                RequiredParameters  requiredParameters = this.RequiredParameters;
+                xml.Append("<RequiredParameters>");
+                xml.Append(requiredParameters.ToXMLFragment());
+                xml.Append("</RequiredParameters>");
+            } 
+            if (IsSetAvailableParameters()) {
+                AvailableParameters  availableParameters = this.AvailableParameters;
+                xml.Append("<AvailableParameters>");
+                xml.Append(availableParameters.ToXMLFragment());
+                xml.Append("</AvailableParameters>");
+            } 
+            if (IsSetDefaultResponseGroups()) {
+                DefaultResponseGroups  defaultResponseGroups = this.DefaultResponseGroups;
+                xml.Append("<DefaultResponseGroups>");
+                xml.Append(defaultResponseGroups.ToXMLFragment());
+                xml.Append("</DefaultResponseGroups>");
+            } 
+            if (IsSetAvailableResponseGroups()) {
+                AvailableResponseGroups  availableResponseGroups = this.AvailableResponseGroups;
+                xml.Append("<AvailableResponseGroups>");
+                xml.Append(availableResponseGroups.ToXMLFragment());
+                xml.Append("</AvailableResponseGroups>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationRequest.cs
new file mode 100644
index 0000000..01f5270
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OperationRequest.cs
@@ -0,0 +1,264 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OperationRequest
+    {
+    
+        private  HTTPHeaders HTTPHeadersField;
+        private String requestIdField;
+
+        private  Arguments argumentsField;
+        private Single? requestProcessingTimeField;
+
+
+        /// <summary>
+        /// Gets and sets the HTTPHeaders property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HTTPHeaders")]
+        public HTTPHeaders HTTPHeaders
+        {
+            get { return this.HTTPHeadersField ; }
+            set { this.HTTPHeadersField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HTTPHeaders property
+        /// </summary>
+        /// <param name="HTTPHeaders">HTTPHeaders property</param>
+        /// <returns>this instance</returns>
+        public OperationRequest WithHTTPHeaders(HTTPHeaders HTTPHeaders)
+        {
+            this.HTTPHeadersField = HTTPHeaders;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HTTPHeaders property is set
+        /// </summary>
+        /// <returns>true if HTTPHeaders property is set</returns>
+        public Boolean IsSetHTTPHeaders()
+        {
+            return this.HTTPHeadersField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the RequestId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RequestId")]
+        public String RequestId
+        {
+            get { return this.requestIdField ; }
+            set { this.requestIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RequestId property
+        /// </summary>
+        /// <param name="requestId">RequestId property</param>
+        /// <returns>this instance</returns>
+        public OperationRequest WithRequestId(String requestId)
+        {
+            this.requestIdField = requestId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RequestId property is set
+        /// </summary>
+        /// <returns>true if RequestId property is set</returns>
+        public Boolean IsSetRequestId()
+        {
+            return  this.requestIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Arguments property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Arguments")]
+        public Arguments Arguments
+        {
+            get { return this.argumentsField ; }
+            set { this.argumentsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Arguments property
+        /// </summary>
+        /// <param name="arguments">Arguments property</param>
+        /// <returns>this instance</returns>
+        public OperationRequest WithArguments(Arguments arguments)
+        {
+            this.argumentsField = arguments;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Arguments property is set
+        /// </summary>
+        /// <returns>true if Arguments property is set</returns>
+        public Boolean IsSetArguments()
+        {
+            return this.argumentsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the RequestProcessingTime property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RequestProcessingTime")]
+        public Single RequestProcessingTime
+        {
+            get { return this.requestProcessingTimeField.GetValueOrDefault() ; }
+            set { this.requestProcessingTimeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RequestProcessingTime property
+        /// </summary>
+        /// <param name="requestProcessingTime">RequestProcessingTime property</param>
+        /// <returns>this instance</returns>
+        public OperationRequest WithRequestProcessingTime(Single requestProcessingTime)
+        {
+            this.requestProcessingTimeField = requestProcessingTime;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RequestProcessingTime property is set
+        /// </summary>
+        /// <returns>true if RequestProcessingTime property is set</returns>
+        public Boolean IsSetRequestProcessingTime()
+        {
+            return  this.requestProcessingTimeField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetHTTPHeaders()) {
+                HTTPHeaders  HTTPHeaders = this.HTTPHeaders;
+                xml.Append("<HTTPHeaders>");
+                xml.Append(HTTPHeaders.ToXMLFragment());
+                xml.Append("</HTTPHeaders>");
+            } 
+            if (IsSetRequestId()) {
+                xml.Append("<RequestId>");
+                xml.Append(EscapeXML(this.RequestId));
+                xml.Append("</RequestId>");
+            }
+            if (IsSetArguments()) {
+                Arguments  arguments = this.Arguments;
+                xml.Append("<Arguments>");
+                xml.Append(arguments.ToXMLFragment());
+                xml.Append("</Arguments>");
+            } 
+            if (IsSetRequestProcessingTime()) {
+                xml.Append("<RequestProcessingTime>");
+                xml.Append(this.RequestProcessingTime);
+                xml.Append("</RequestProcessingTime>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProduct.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProduct.cs
new file mode 100644
index 0000000..11ea510
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProduct.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OtherCategoriesSimilarProduct
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public OtherCategoriesSimilarProduct WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public OtherCategoriesSimilarProduct WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProducts.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProducts.cs
new file mode 100644
index 0000000..d36c4fe
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/OtherCategoriesSimilarProducts.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class OtherCategoriesSimilarProducts
+    {
+    
+        private  List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductField;
+
+
+        /// <summary>
+        /// Gets and sets the OtherCategoriesSimilarProduct property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OtherCategoriesSimilarProduct")]
+        public List<OtherCategoriesSimilarProduct> OtherCategoriesSimilarProduct
+        {
+            get
+            {
+                if (this.otherCategoriesSimilarProductField == null)
+                {
+                    this.otherCategoriesSimilarProductField = new List<OtherCategoriesSimilarProduct>();
+                }
+                return this.otherCategoriesSimilarProductField;
+            }
+            set { this.otherCategoriesSimilarProductField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OtherCategoriesSimilarProduct property
+        /// </summary>
+        /// <param name="list">OtherCategoriesSimilarProduct property</param>
+        /// <returns>this instance</returns>
+        public OtherCategoriesSimilarProducts WithOtherCategoriesSimilarProduct(params OtherCategoriesSimilarProduct[] list)
+        {
+            foreach (OtherCategoriesSimilarProduct item in list)
+            {
+                OtherCategoriesSimilarProduct.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if OtherCategoriesSimilarProduct property is set
+        /// </summary>
+        /// <returns>true if OtherCategoriesSimilarProduct property is set</returns>
+        public Boolean IsSetOtherCategoriesSimilarProduct()
+        {
+            return (OtherCategoriesSimilarProduct.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<OtherCategoriesSimilarProduct> otherCategoriesSimilarProductList = this.OtherCategoriesSimilarProduct;
+            foreach (OtherCategoriesSimilarProduct otherCategoriesSimilarProduct in otherCategoriesSimilarProductList) {
+                xml.Append("<OtherCategoriesSimilarProduct>");
+                xml.Append(otherCategoriesSimilarProduct.ToXMLFragment());
+                xml.Append("</OtherCategoriesSimilarProduct>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PackageDimensions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PackageDimensions.cs
new file mode 100644
index 0000000..4c4e4ab
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PackageDimensions.cs
@@ -0,0 +1,266 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PackageDimensions
+    {
+    
+        private  DecimalWithUnits heightField;
+        private  DecimalWithUnits lengthField;
+        private  DecimalWithUnits weightField;
+        private  DecimalWithUnits widthField;
+
+        /// <summary>
+        /// Gets and sets the Height property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Height")]
+        public DecimalWithUnits Height
+        {
+            get { return this.heightField ; }
+            set { this.heightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Height property
+        /// </summary>
+        /// <param name="height">Height property</param>
+        /// <returns>this instance</returns>
+        public PackageDimensions WithHeight(DecimalWithUnits height)
+        {
+            this.heightField = height;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Height property is set
+        /// </summary>
+        /// <returns>true if Height property is set</returns>
+        public Boolean IsSetHeight()
+        {
+            return this.heightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Length property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Length")]
+        public DecimalWithUnits Length
+        {
+            get { return this.lengthField ; }
+            set { this.lengthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Length property
+        /// </summary>
+        /// <param name="length">Length property</param>
+        /// <returns>this instance</returns>
+        public PackageDimensions WithLength(DecimalWithUnits length)
+        {
+            this.lengthField = length;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Length property is set
+        /// </summary>
+        /// <returns>true if Length property is set</returns>
+        public Boolean IsSetLength()
+        {
+            return this.lengthField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Weight property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Weight")]
+        public DecimalWithUnits Weight
+        {
+            get { return this.weightField ; }
+            set { this.weightField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Weight property
+        /// </summary>
+        /// <param name="weight">Weight property</param>
+        /// <returns>this instance</returns>
+        public PackageDimensions WithWeight(DecimalWithUnits weight)
+        {
+            this.weightField = weight;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Weight property is set
+        /// </summary>
+        /// <returns>true if Weight property is set</returns>
+        public Boolean IsSetWeight()
+        {
+            return this.weightField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Width property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Width")]
+        public DecimalWithUnits Width
+        {
+            get { return this.widthField ; }
+            set { this.widthField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Width property
+        /// </summary>
+        /// <param name="width">Width property</param>
+        /// <returns>this instance</returns>
+        public PackageDimensions WithWidth(DecimalWithUnits width)
+        {
+            this.widthField = width;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Width property is set
+        /// </summary>
+        /// <returns>true if Width property is set</returns>
+        public Boolean IsSetWidth()
+        {
+            return this.widthField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetHeight()) {
+                DecimalWithUnits  height = this.Height;
+                xml.Append("<Height Units=" + "\"" +  EscapeXML(height.Units)  + "\"" +  ">");
+                xml.Append(height.Value);
+                xml.Append("</Height>");
+            } 
+            if (IsSetLength()) {
+                DecimalWithUnits  length = this.Length;
+                xml.Append("<Length Units=" + "\"" +  EscapeXML(length.Units)  + "\"" +  ">");
+                xml.Append(length.Value);
+                xml.Append("</Length>");
+            } 
+            if (IsSetWeight()) {
+                DecimalWithUnits  weight = this.Weight;
+                xml.Append("<Weight Units=" + "\"" +  EscapeXML(weight.Units)  + "\"" +  ">");
+                xml.Append(weight.Value);
+                xml.Append("</Weight>");
+            } 
+            if (IsSetWidth()) {
+                DecimalWithUnits  width = this.Width;
+                xml.Append("<Width Units=" + "\"" +  EscapeXML(width.Units)  + "\"" +  ">");
+                xml.Append(width.Value);
+                xml.Append("</Width>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Price.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Price.cs
new file mode 100644
index 0000000..f86f18f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Price.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Price
+    {
+    
+        private Decimal? amountField;
+
+        private String currencyCodeField;
+
+        private String formattedPriceField;
+
+
+        /// <summary>
+        /// Gets and sets the Amount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Amount")]
+        public Decimal Amount
+        {
+            get { return this.amountField.GetValueOrDefault() ; }
+            set { this.amountField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Amount property
+        /// </summary>
+        /// <param name="amount">Amount property</param>
+        /// <returns>this instance</returns>
+        public Price WithAmount(Decimal amount)
+        {
+            this.amountField = amount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Amount property is set
+        /// </summary>
+        /// <returns>true if Amount property is set</returns>
+        public Boolean IsSetAmount()
+        {
+            return  this.amountField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CurrencyCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CurrencyCode")]
+        public String CurrencyCode
+        {
+            get { return this.currencyCodeField ; }
+            set { this.currencyCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CurrencyCode property
+        /// </summary>
+        /// <param name="currencyCode">CurrencyCode property</param>
+        /// <returns>this instance</returns>
+        public Price WithCurrencyCode(String currencyCode)
+        {
+            this.currencyCodeField = currencyCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CurrencyCode property is set
+        /// </summary>
+        /// <returns>true if CurrencyCode property is set</returns>
+        public Boolean IsSetCurrencyCode()
+        {
+            return  this.currencyCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FormattedPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FormattedPrice")]
+        public String FormattedPrice
+        {
+            get { return this.formattedPriceField ; }
+            set { this.formattedPriceField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FormattedPrice property
+        /// </summary>
+        /// <param name="formattedPrice">FormattedPrice property</param>
+        /// <returns>this instance</returns>
+        public Price WithFormattedPrice(String formattedPrice)
+        {
+            this.formattedPriceField = formattedPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FormattedPrice property is set
+        /// </summary>
+        /// <returns>true if FormattedPrice property is set</returns>
+        public Boolean IsSetFormattedPrice()
+        {
+            return  this.formattedPriceField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetAmount()) {
+                xml.Append("<Amount>");
+                xml.Append(this.Amount);
+                xml.Append("</Amount>");
+            }
+            if (IsSetCurrencyCode()) {
+                xml.Append("<CurrencyCode>");
+                xml.Append(EscapeXML(this.CurrencyCode));
+                xml.Append("</CurrencyCode>");
+            }
+            if (IsSetFormattedPrice()) {
+                xml.Append("<FormattedPrice>");
+                xml.Append(EscapeXML(this.FormattedPrice));
+                xml.Append("</FormattedPrice>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotion.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotion.cs
new file mode 100644
index 0000000..7f9a2bc
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotion.cs
@@ -0,0 +1,178 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Promotion
+    {
+    
+        private  PromotionSummary summaryField;
+        private  PromotionDetails detailsField;
+
+        /// <summary>
+        /// Gets and sets the Summary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Summary")]
+        public PromotionSummary Summary
+        {
+            get { return this.summaryField ; }
+            set { this.summaryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Summary property
+        /// </summary>
+        /// <param name="summary">Summary property</param>
+        /// <returns>this instance</returns>
+        public Promotion WithSummary(PromotionSummary summary)
+        {
+            this.summaryField = summary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Summary property is set
+        /// </summary>
+        /// <returns>true if Summary property is set</returns>
+        public Boolean IsSetSummary()
+        {
+            return this.summaryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Details property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Details")]
+        public PromotionDetails Details
+        {
+            get { return this.detailsField ; }
+            set { this.detailsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Details property
+        /// </summary>
+        /// <param name="details">Details property</param>
+        /// <returns>this instance</returns>
+        public Promotion WithDetails(PromotionDetails details)
+        {
+            this.detailsField = details;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Details property is set
+        /// </summary>
+        /// <returns>true if Details property is set</returns>
+        public Boolean IsSetDetails()
+        {
+            return this.detailsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSummary()) {
+                PromotionSummary  summary = this.Summary;
+                xml.Append("<Summary>");
+                xml.Append(summary.ToXMLFragment());
+                xml.Append("</Summary>");
+            } 
+            if (IsSetDetails()) {
+                PromotionDetails  details = this.Details;
+                xml.Append("<Details>");
+                xml.Append(details.ToXMLFragment());
+                xml.Append("</Details>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefit.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefit.cs
new file mode 100644
index 0000000..b1a1e5e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefit.cs
@@ -0,0 +1,350 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionBenefit
+    {
+    
+        private String benefitTypeField;
+
+        private String componentTypeField;
+
+        private Decimal? quantityField;
+
+        private Double? percentOffField;
+
+        private  Price fixedAmountField;
+        private  Price ceilingField;
+
+        /// <summary>
+        /// Gets and sets the BenefitType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BenefitType")]
+        public String BenefitType
+        {
+            get { return this.benefitTypeField ; }
+            set { this.benefitTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BenefitType property
+        /// </summary>
+        /// <param name="benefitType">BenefitType property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithBenefitType(String benefitType)
+        {
+            this.benefitTypeField = benefitType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BenefitType property is set
+        /// </summary>
+        /// <returns>true if BenefitType property is set</returns>
+        public Boolean IsSetBenefitType()
+        {
+            return  this.benefitTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ComponentType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ComponentType")]
+        public String ComponentType
+        {
+            get { return this.componentTypeField ; }
+            set { this.componentTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ComponentType property
+        /// </summary>
+        /// <param name="componentType">ComponentType property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithComponentType(String componentType)
+        {
+            this.componentTypeField = componentType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ComponentType property is set
+        /// </summary>
+        /// <returns>true if ComponentType property is set</returns>
+        public Boolean IsSetComponentType()
+        {
+            return  this.componentTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PercentOff property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PercentOff")]
+        public Double PercentOff
+        {
+            get { return this.percentOffField.GetValueOrDefault() ; }
+            set { this.percentOffField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PercentOff property
+        /// </summary>
+        /// <param name="percentOff">PercentOff property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithPercentOff(Double percentOff)
+        {
+            this.percentOffField = percentOff;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PercentOff property is set
+        /// </summary>
+        /// <returns>true if PercentOff property is set</returns>
+        public Boolean IsSetPercentOff()
+        {
+            return  this.percentOffField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FixedAmount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FixedAmount")]
+        public Price FixedAmount
+        {
+            get { return this.fixedAmountField ; }
+            set { this.fixedAmountField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FixedAmount property
+        /// </summary>
+        /// <param name="fixedAmount">FixedAmount property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithFixedAmount(Price fixedAmount)
+        {
+            this.fixedAmountField = fixedAmount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FixedAmount property is set
+        /// </summary>
+        /// <returns>true if FixedAmount property is set</returns>
+        public Boolean IsSetFixedAmount()
+        {
+            return this.fixedAmountField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Ceiling property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Ceiling")]
+        public Price Ceiling
+        {
+            get { return this.ceilingField ; }
+            set { this.ceilingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Ceiling property
+        /// </summary>
+        /// <param name="ceiling">Ceiling property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefit WithCeiling(Price ceiling)
+        {
+            this.ceilingField = ceiling;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Ceiling property is set
+        /// </summary>
+        /// <returns>true if Ceiling property is set</returns>
+        public Boolean IsSetCeiling()
+        {
+            return this.ceilingField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetBenefitType()) {
+                xml.Append("<BenefitType>");
+                xml.Append(EscapeXML(this.BenefitType));
+                xml.Append("</BenefitType>");
+            }
+            if (IsSetComponentType()) {
+                xml.Append("<ComponentType>");
+                xml.Append(EscapeXML(this.ComponentType));
+                xml.Append("</ComponentType>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            if (IsSetPercentOff()) {
+                xml.Append("<PercentOff>");
+                xml.Append(this.PercentOff);
+                xml.Append("</PercentOff>");
+            }
+            if (IsSetFixedAmount()) {
+                Price  fixedAmount = this.FixedAmount;
+                xml.Append("<FixedAmount>");
+                xml.Append(fixedAmount.ToXMLFragment());
+                xml.Append("</FixedAmount>");
+            } 
+            if (IsSetCeiling()) {
+                Price  ceiling = this.Ceiling;
+                xml.Append("<Ceiling>");
+                xml.Append(ceiling.ToXMLFragment());
+                xml.Append("</Ceiling>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefits.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefits.cs
new file mode 100644
index 0000000..f3ff647
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionBenefits.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionBenefits
+    {
+    
+        private  List<PromotionBenefit> benefitField;
+
+
+        /// <summary>
+        /// Gets and sets the Benefit property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Benefit")]
+        public List<PromotionBenefit> Benefit
+        {
+            get
+            {
+                if (this.benefitField == null)
+                {
+                    this.benefitField = new List<PromotionBenefit>();
+                }
+                return this.benefitField;
+            }
+            set { this.benefitField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Benefit property
+        /// </summary>
+        /// <param name="list">Benefit property</param>
+        /// <returns>this instance</returns>
+        public PromotionBenefits WithBenefit(params PromotionBenefit[] list)
+        {
+            foreach (PromotionBenefit item in list)
+            {
+                Benefit.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Benefit property is set
+        /// </summary>
+        /// <returns>true if Benefit property is set</returns>
+        public Boolean IsSetBenefit()
+        {
+            return (Benefit.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<PromotionBenefit> benefitList = this.Benefit;
+            foreach (PromotionBenefit benefit in benefitList) {
+                xml.Append("<Benefit>");
+                xml.Append(benefit.ToXMLFragment());
+                xml.Append("</Benefit>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionDetails.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionDetails.cs
new file mode 100644
index 0000000..5b8cb47
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionDetails.cs
@@ -0,0 +1,695 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionDetails
+    {
+    
+        private String merchantIdField;
+
+        private String owningMerchantIdField;
+
+        private String promotionIdField;
+
+        private String promotionCategoryField;
+
+        private String merchantPromotionIdField;
+
+        private String groupClaimCodeField;
+
+        private String couponCombinationTypeField;
+
+        private String startDateField;
+
+        private String endDateField;
+
+        private String termsAndConditionsField;
+
+        private  PromotionEligibilityRequirements eligibilityRequirementsField;
+        private  PromotionBenefits benefitsField;
+        private  PromotionItemApplicability itemApplicabilityField;
+        private String merchandisingMessageField;
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OwningMerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OwningMerchantId")]
+        public String OwningMerchantId
+        {
+            get { return this.owningMerchantIdField ; }
+            set { this.owningMerchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OwningMerchantId property
+        /// </summary>
+        /// <param name="owningMerchantId">OwningMerchantId property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithOwningMerchantId(String owningMerchantId)
+        {
+            this.owningMerchantIdField = owningMerchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OwningMerchantId property is set
+        /// </summary>
+        /// <returns>true if OwningMerchantId property is set</returns>
+        public Boolean IsSetOwningMerchantId()
+        {
+            return  this.owningMerchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PromotionId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PromotionId")]
+        public String PromotionId
+        {
+            get { return this.promotionIdField ; }
+            set { this.promotionIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PromotionId property
+        /// </summary>
+        /// <param name="promotionId">PromotionId property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithPromotionId(String promotionId)
+        {
+            this.promotionIdField = promotionId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PromotionId property is set
+        /// </summary>
+        /// <returns>true if PromotionId property is set</returns>
+        public Boolean IsSetPromotionId()
+        {
+            return  this.promotionIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PromotionCategory property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PromotionCategory")]
+        public String PromotionCategory
+        {
+            get { return this.promotionCategoryField ; }
+            set { this.promotionCategoryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PromotionCategory property
+        /// </summary>
+        /// <param name="promotionCategory">PromotionCategory property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithPromotionCategory(String promotionCategory)
+        {
+            this.promotionCategoryField = promotionCategory;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PromotionCategory property is set
+        /// </summary>
+        /// <returns>true if PromotionCategory property is set</returns>
+        public Boolean IsSetPromotionCategory()
+        {
+            return  this.promotionCategoryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantPromotionId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantPromotionId")]
+        public String MerchantPromotionId
+        {
+            get { return this.merchantPromotionIdField ; }
+            set { this.merchantPromotionIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantPromotionId property
+        /// </summary>
+        /// <param name="merchantPromotionId">MerchantPromotionId property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithMerchantPromotionId(String merchantPromotionId)
+        {
+            this.merchantPromotionIdField = merchantPromotionId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantPromotionId property is set
+        /// </summary>
+        /// <returns>true if MerchantPromotionId property is set</returns>
+        public Boolean IsSetMerchantPromotionId()
+        {
+            return  this.merchantPromotionIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GroupClaimCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GroupClaimCode")]
+        public String GroupClaimCode
+        {
+            get { return this.groupClaimCodeField ; }
+            set { this.groupClaimCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GroupClaimCode property
+        /// </summary>
+        /// <param name="groupClaimCode">GroupClaimCode property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithGroupClaimCode(String groupClaimCode)
+        {
+            this.groupClaimCodeField = groupClaimCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GroupClaimCode property is set
+        /// </summary>
+        /// <returns>true if GroupClaimCode property is set</returns>
+        public Boolean IsSetGroupClaimCode()
+        {
+            return  this.groupClaimCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CouponCombinationType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CouponCombinationType")]
+        public String CouponCombinationType
+        {
+            get { return this.couponCombinationTypeField ; }
+            set { this.couponCombinationTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CouponCombinationType property
+        /// </summary>
+        /// <param name="couponCombinationType">CouponCombinationType property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithCouponCombinationType(String couponCombinationType)
+        {
+            this.couponCombinationTypeField = couponCombinationType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CouponCombinationType property is set
+        /// </summary>
+        /// <returns>true if CouponCombinationType property is set</returns>
+        public Boolean IsSetCouponCombinationType()
+        {
+            return  this.couponCombinationTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StartDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StartDate")]
+        public String StartDate
+        {
+            get { return this.startDateField ; }
+            set { this.startDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StartDate property
+        /// </summary>
+        /// <param name="startDate">StartDate property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithStartDate(String startDate)
+        {
+            this.startDateField = startDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StartDate property is set
+        /// </summary>
+        /// <returns>true if StartDate property is set</returns>
+        public Boolean IsSetStartDate()
+        {
+            return  this.startDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EndDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EndDate")]
+        public String EndDate
+        {
+            get { return this.endDateField ; }
+            set { this.endDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EndDate property
+        /// </summary>
+        /// <param name="endDate">EndDate property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithEndDate(String endDate)
+        {
+            this.endDateField = endDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EndDate property is set
+        /// </summary>
+        /// <returns>true if EndDate property is set</returns>
+        public Boolean IsSetEndDate()
+        {
+            return  this.endDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TermsAndConditions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TermsAndConditions")]
+        public String TermsAndConditions
+        {
+            get { return this.termsAndConditionsField ; }
+            set { this.termsAndConditionsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TermsAndConditions property
+        /// </summary>
+        /// <param name="termsAndConditions">TermsAndConditions property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithTermsAndConditions(String termsAndConditions)
+        {
+            this.termsAndConditionsField = termsAndConditions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TermsAndConditions property is set
+        /// </summary>
+        /// <returns>true if TermsAndConditions property is set</returns>
+        public Boolean IsSetTermsAndConditions()
+        {
+            return  this.termsAndConditionsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EligibilityRequirements property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EligibilityRequirements")]
+        public PromotionEligibilityRequirements EligibilityRequirements
+        {
+            get { return this.eligibilityRequirementsField ; }
+            set { this.eligibilityRequirementsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EligibilityRequirements property
+        /// </summary>
+        /// <param name="eligibilityRequirements">EligibilityRequirements property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithEligibilityRequirements(PromotionEligibilityRequirements eligibilityRequirements)
+        {
+            this.eligibilityRequirementsField = eligibilityRequirements;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EligibilityRequirements property is set
+        /// </summary>
+        /// <returns>true if EligibilityRequirements property is set</returns>
+        public Boolean IsSetEligibilityRequirements()
+        {
+            return this.eligibilityRequirementsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Benefits property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Benefits")]
+        public PromotionBenefits Benefits
+        {
+            get { return this.benefitsField ; }
+            set { this.benefitsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Benefits property
+        /// </summary>
+        /// <param name="benefits">Benefits property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithBenefits(PromotionBenefits benefits)
+        {
+            this.benefitsField = benefits;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Benefits property is set
+        /// </summary>
+        /// <returns>true if Benefits property is set</returns>
+        public Boolean IsSetBenefits()
+        {
+            return this.benefitsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ItemApplicability property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemApplicability")]
+        public PromotionItemApplicability ItemApplicability
+        {
+            get { return this.itemApplicabilityField ; }
+            set { this.itemApplicabilityField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemApplicability property
+        /// </summary>
+        /// <param name="itemApplicability">ItemApplicability property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithItemApplicability(PromotionItemApplicability itemApplicability)
+        {
+            this.itemApplicabilityField = itemApplicability;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ItemApplicability property is set
+        /// </summary>
+        /// <returns>true if ItemApplicability property is set</returns>
+        public Boolean IsSetItemApplicability()
+        {
+            return this.itemApplicabilityField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the MerchandisingMessage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchandisingMessage")]
+        public String MerchandisingMessage
+        {
+            get { return this.merchandisingMessageField ; }
+            set { this.merchandisingMessageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchandisingMessage property
+        /// </summary>
+        /// <param name="merchandisingMessage">MerchandisingMessage property</param>
+        /// <returns>this instance</returns>
+        public PromotionDetails WithMerchandisingMessage(String merchandisingMessage)
+        {
+            this.merchandisingMessageField = merchandisingMessage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchandisingMessage property is set
+        /// </summary>
+        /// <returns>true if MerchandisingMessage property is set</returns>
+        public Boolean IsSetMerchandisingMessage()
+        {
+            return  this.merchandisingMessageField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            if (IsSetOwningMerchantId()) {
+                xml.Append("<OwningMerchantId>");
+                xml.Append(EscapeXML(this.OwningMerchantId));
+                xml.Append("</OwningMerchantId>");
+            }
+            if (IsSetPromotionId()) {
+                xml.Append("<PromotionId>");
+                xml.Append(EscapeXML(this.PromotionId));
+                xml.Append("</PromotionId>");
+            }
+            if (IsSetPromotionCategory()) {
+                xml.Append("<PromotionCategory>");
+                xml.Append(EscapeXML(this.PromotionCategory));
+                xml.Append("</PromotionCategory>");
+            }
+            if (IsSetMerchantPromotionId()) {
+                xml.Append("<MerchantPromotionId>");
+                xml.Append(EscapeXML(this.MerchantPromotionId));
+                xml.Append("</MerchantPromotionId>");
+            }
+            if (IsSetGroupClaimCode()) {
+                xml.Append("<GroupClaimCode>");
+                xml.Append(EscapeXML(this.GroupClaimCode));
+                xml.Append("</GroupClaimCode>");
+            }
+            if (IsSetCouponCombinationType()) {
+                xml.Append("<CouponCombinationType>");
+                xml.Append(EscapeXML(this.CouponCombinationType));
+                xml.Append("</CouponCombinationType>");
+            }
+            if (IsSetStartDate()) {
+                xml.Append("<StartDate>");
+                xml.Append(EscapeXML(this.StartDate));
+                xml.Append("</StartDate>");
+            }
+            if (IsSetEndDate()) {
+                xml.Append("<EndDate>");
+                xml.Append(EscapeXML(this.EndDate));
+                xml.Append("</EndDate>");
+            }
+            if (IsSetTermsAndConditions()) {
+                xml.Append("<TermsAndConditions>");
+                xml.Append(EscapeXML(this.TermsAndConditions));
+                xml.Append("</TermsAndConditions>");
+            }
+            if (IsSetEligibilityRequirements()) {
+                PromotionEligibilityRequirements  eligibilityRequirements = this.EligibilityRequirements;
+                xml.Append("<EligibilityRequirements>");
+                xml.Append(eligibilityRequirements.ToXMLFragment());
+                xml.Append("</EligibilityRequirements>");
+            } 
+            if (IsSetBenefits()) {
+                PromotionBenefits  benefits = this.Benefits;
+                xml.Append("<Benefits>");
+                xml.Append(benefits.ToXMLFragment());
+                xml.Append("</Benefits>");
+            } 
+            if (IsSetItemApplicability()) {
+                PromotionItemApplicability  itemApplicability = this.ItemApplicability;
+                xml.Append("<ItemApplicability>");
+                xml.Append(itemApplicability.ToXMLFragment());
+                xml.Append("</ItemApplicability>");
+            } 
+            if (IsSetMerchandisingMessage()) {
+                xml.Append("<MerchandisingMessage>");
+                xml.Append(EscapeXML(this.MerchandisingMessage));
+                xml.Append("</MerchandisingMessage>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirement.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirement.cs
new file mode 100644
index 0000000..bbca2bb
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirement.cs
@@ -0,0 +1,220 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionEligibilityRequirement
+    {
+    
+        private String eligibilityRequirementTypeField;
+
+        private Decimal? quantityField;
+
+        private  Price currencyAmountField;
+
+        /// <summary>
+        /// Gets and sets the EligibilityRequirementType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EligibilityRequirementType")]
+        public String EligibilityRequirementType
+        {
+            get { return this.eligibilityRequirementTypeField ; }
+            set { this.eligibilityRequirementTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EligibilityRequirementType property
+        /// </summary>
+        /// <param name="eligibilityRequirementType">EligibilityRequirementType property</param>
+        /// <returns>this instance</returns>
+        public PromotionEligibilityRequirement WithEligibilityRequirementType(String eligibilityRequirementType)
+        {
+            this.eligibilityRequirementTypeField = eligibilityRequirementType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EligibilityRequirementType property is set
+        /// </summary>
+        /// <returns>true if EligibilityRequirementType property is set</returns>
+        public Boolean IsSetEligibilityRequirementType()
+        {
+            return  this.eligibilityRequirementTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public Decimal Quantity
+        {
+            get { return this.quantityField.GetValueOrDefault() ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public PromotionEligibilityRequirement WithQuantity(Decimal quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CurrencyAmount property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CurrencyAmount")]
+        public Price CurrencyAmount
+        {
+            get { return this.currencyAmountField ; }
+            set { this.currencyAmountField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CurrencyAmount property
+        /// </summary>
+        /// <param name="currencyAmount">CurrencyAmount property</param>
+        /// <returns>this instance</returns>
+        public PromotionEligibilityRequirement WithCurrencyAmount(Price currencyAmount)
+        {
+            this.currencyAmountField = currencyAmount;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CurrencyAmount property is set
+        /// </summary>
+        /// <returns>true if CurrencyAmount property is set</returns>
+        public Boolean IsSetCurrencyAmount()
+        {
+            return this.currencyAmountField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetEligibilityRequirementType()) {
+                xml.Append("<EligibilityRequirementType>");
+                xml.Append(EscapeXML(this.EligibilityRequirementType));
+                xml.Append("</EligibilityRequirementType>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(this.Quantity);
+                xml.Append("</Quantity>");
+            }
+            if (IsSetCurrencyAmount()) {
+                Price  currencyAmount = this.CurrencyAmount;
+                xml.Append("<CurrencyAmount>");
+                xml.Append(currencyAmount.ToXMLFragment());
+                xml.Append("</CurrencyAmount>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirements.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirements.cs
new file mode 100644
index 0000000..f891e05
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionEligibilityRequirements.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionEligibilityRequirements
+    {
+    
+        private  List<PromotionEligibilityRequirement> eligibilityRequirementField;
+
+
+        /// <summary>
+        /// Gets and sets the EligibilityRequirement property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EligibilityRequirement")]
+        public List<PromotionEligibilityRequirement> EligibilityRequirement
+        {
+            get
+            {
+                if (this.eligibilityRequirementField == null)
+                {
+                    this.eligibilityRequirementField = new List<PromotionEligibilityRequirement>();
+                }
+                return this.eligibilityRequirementField;
+            }
+            set { this.eligibilityRequirementField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EligibilityRequirement property
+        /// </summary>
+        /// <param name="list">EligibilityRequirement property</param>
+        /// <returns>this instance</returns>
+        public PromotionEligibilityRequirements WithEligibilityRequirement(params PromotionEligibilityRequirement[] list)
+        {
+            foreach (PromotionEligibilityRequirement item in list)
+            {
+                EligibilityRequirement.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if EligibilityRequirement property is set
+        /// </summary>
+        /// <returns>true if EligibilityRequirement property is set</returns>
+        public Boolean IsSetEligibilityRequirement()
+        {
+            return (EligibilityRequirement.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<PromotionEligibilityRequirement> eligibilityRequirementList = this.EligibilityRequirement;
+            foreach (PromotionEligibilityRequirement eligibilityRequirement in eligibilityRequirementList) {
+                xml.Append("<EligibilityRequirement>");
+                xml.Append(eligibilityRequirement.ToXMLFragment());
+                xml.Append("</EligibilityRequirement>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionItemApplicability.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionItemApplicability.cs
new file mode 100644
index 0000000..4bc91c9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionItemApplicability.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionItemApplicability
+    {
+    
+        private String ASINField;
+
+        private Boolean? isInBenefitSetField;
+
+        private Boolean? isInEligibilityRequirementSetField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public PromotionItemApplicability WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsInBenefitSet property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsInBenefitSet")]
+        public Boolean IsInBenefitSet
+        {
+            get { return this.isInBenefitSetField.GetValueOrDefault() ; }
+            set { this.isInBenefitSetField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsInBenefitSet property
+        /// </summary>
+        /// <param name="isInBenefitSet">IsInBenefitSet property</param>
+        /// <returns>this instance</returns>
+        public PromotionItemApplicability WithIsInBenefitSet(Boolean isInBenefitSet)
+        {
+            this.isInBenefitSetField = isInBenefitSet;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsInBenefitSet property is set
+        /// </summary>
+        /// <returns>true if IsInBenefitSet property is set</returns>
+        public Boolean IsSetIsInBenefitSet()
+        {
+            return  this.isInBenefitSetField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IsInEligibilityRequirementSet property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IsInEligibilityRequirementSet")]
+        public Boolean IsInEligibilityRequirementSet
+        {
+            get { return this.isInEligibilityRequirementSetField.GetValueOrDefault() ; }
+            set { this.isInEligibilityRequirementSetField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IsInEligibilityRequirementSet property
+        /// </summary>
+        /// <param name="isInEligibilityRequirementSet">IsInEligibilityRequirementSet property</param>
+        /// <returns>this instance</returns>
+        public PromotionItemApplicability WithIsInEligibilityRequirementSet(Boolean isInEligibilityRequirementSet)
+        {
+            this.isInEligibilityRequirementSetField = isInEligibilityRequirementSet;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IsInEligibilityRequirementSet property is set
+        /// </summary>
+        /// <returns>true if IsInEligibilityRequirementSet property is set</returns>
+        public Boolean IsSetIsInEligibilityRequirementSet()
+        {
+            return  this.isInEligibilityRequirementSetField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetIsInBenefitSet()) {
+                xml.Append("<IsInBenefitSet>");
+                xml.Append(this.IsInBenefitSet);
+                xml.Append("</IsInBenefitSet>");
+            }
+            if (IsSetIsInEligibilityRequirementSet()) {
+                xml.Append("<IsInEligibilityRequirementSet>");
+                xml.Append(this.IsInEligibilityRequirementSet);
+                xml.Append("</IsInEligibilityRequirementSet>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionSummary.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionSummary.cs
new file mode 100644
index 0000000..27bf84b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/PromotionSummary.cs
@@ -0,0 +1,391 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class PromotionSummary
+    {
+    
+        private String promotionIdField;
+
+        private String categoryField;
+
+        private String startDateField;
+
+        private String endDateField;
+
+        private String eligibilityRequirementDescriptionField;
+
+        private String benefitDescriptionField;
+
+        private String termsAndConditionsField;
+
+
+        /// <summary>
+        /// Gets and sets the PromotionId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PromotionId")]
+        public String PromotionId
+        {
+            get { return this.promotionIdField ; }
+            set { this.promotionIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PromotionId property
+        /// </summary>
+        /// <param name="promotionId">PromotionId property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithPromotionId(String promotionId)
+        {
+            this.promotionIdField = promotionId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PromotionId property is set
+        /// </summary>
+        /// <returns>true if PromotionId property is set</returns>
+        public Boolean IsSetPromotionId()
+        {
+            return  this.promotionIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Category property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Category")]
+        public String Category
+        {
+            get { return this.categoryField ; }
+            set { this.categoryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Category property
+        /// </summary>
+        /// <param name="category">Category property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithCategory(String category)
+        {
+            this.categoryField = category;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Category property is set
+        /// </summary>
+        /// <returns>true if Category property is set</returns>
+        public Boolean IsSetCategory()
+        {
+            return  this.categoryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StartDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StartDate")]
+        public String StartDate
+        {
+            get { return this.startDateField ; }
+            set { this.startDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StartDate property
+        /// </summary>
+        /// <param name="startDate">StartDate property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithStartDate(String startDate)
+        {
+            this.startDateField = startDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StartDate property is set
+        /// </summary>
+        /// <returns>true if StartDate property is set</returns>
+        public Boolean IsSetStartDate()
+        {
+            return  this.startDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EndDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EndDate")]
+        public String EndDate
+        {
+            get { return this.endDateField ; }
+            set { this.endDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EndDate property
+        /// </summary>
+        /// <param name="endDate">EndDate property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithEndDate(String endDate)
+        {
+            this.endDateField = endDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EndDate property is set
+        /// </summary>
+        /// <returns>true if EndDate property is set</returns>
+        public Boolean IsSetEndDate()
+        {
+            return  this.endDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EligibilityRequirementDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EligibilityRequirementDescription")]
+        public String EligibilityRequirementDescription
+        {
+            get { return this.eligibilityRequirementDescriptionField ; }
+            set { this.eligibilityRequirementDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EligibilityRequirementDescription property
+        /// </summary>
+        /// <param name="eligibilityRequirementDescription">EligibilityRequirementDescription property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithEligibilityRequirementDescription(String eligibilityRequirementDescription)
+        {
+            this.eligibilityRequirementDescriptionField = eligibilityRequirementDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EligibilityRequirementDescription property is set
+        /// </summary>
+        /// <returns>true if EligibilityRequirementDescription property is set</returns>
+        public Boolean IsSetEligibilityRequirementDescription()
+        {
+            return  this.eligibilityRequirementDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the BenefitDescription property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "BenefitDescription")]
+        public String BenefitDescription
+        {
+            get { return this.benefitDescriptionField ; }
+            set { this.benefitDescriptionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the BenefitDescription property
+        /// </summary>
+        /// <param name="benefitDescription">BenefitDescription property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithBenefitDescription(String benefitDescription)
+        {
+            this.benefitDescriptionField = benefitDescription;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if BenefitDescription property is set
+        /// </summary>
+        /// <returns>true if BenefitDescription property is set</returns>
+        public Boolean IsSetBenefitDescription()
+        {
+            return  this.benefitDescriptionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TermsAndConditions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TermsAndConditions")]
+        public String TermsAndConditions
+        {
+            get { return this.termsAndConditionsField ; }
+            set { this.termsAndConditionsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TermsAndConditions property
+        /// </summary>
+        /// <param name="termsAndConditions">TermsAndConditions property</param>
+        /// <returns>this instance</returns>
+        public PromotionSummary WithTermsAndConditions(String termsAndConditions)
+        {
+            this.termsAndConditionsField = termsAndConditions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TermsAndConditions property is set
+        /// </summary>
+        /// <returns>true if TermsAndConditions property is set</returns>
+        public Boolean IsSetTermsAndConditions()
+        {
+            return  this.termsAndConditionsField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetPromotionId()) {
+                xml.Append("<PromotionId>");
+                xml.Append(EscapeXML(this.PromotionId));
+                xml.Append("</PromotionId>");
+            }
+            if (IsSetCategory()) {
+                xml.Append("<Category>");
+                xml.Append(EscapeXML(this.Category));
+                xml.Append("</Category>");
+            }
+            if (IsSetStartDate()) {
+                xml.Append("<StartDate>");
+                xml.Append(EscapeXML(this.StartDate));
+                xml.Append("</StartDate>");
+            }
+            if (IsSetEndDate()) {
+                xml.Append("<EndDate>");
+                xml.Append(EscapeXML(this.EndDate));
+                xml.Append("</EndDate>");
+            }
+            if (IsSetEligibilityRequirementDescription()) {
+                xml.Append("<EligibilityRequirementDescription>");
+                xml.Append(EscapeXML(this.EligibilityRequirementDescription));
+                xml.Append("</EligibilityRequirementDescription>");
+            }
+            if (IsSetBenefitDescription()) {
+                xml.Append("<BenefitDescription>");
+                xml.Append(EscapeXML(this.BenefitDescription));
+                xml.Append("</BenefitDescription>");
+            }
+            if (IsSetTermsAndConditions()) {
+                xml.Append("<TermsAndConditions>");
+                xml.Append(EscapeXML(this.TermsAndConditions));
+                xml.Append("</TermsAndConditions>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotions.cs
new file mode 100644
index 0000000..c0f3a1c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Promotions.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Promotions
+    {
+    
+        private  List<Promotion> promotionField;
+
+
+        /// <summary>
+        /// Gets and sets the Promotion property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Promotion")]
+        public List<Promotion> Promotion
+        {
+            get
+            {
+                if (this.promotionField == null)
+                {
+                    this.promotionField = new List<Promotion>();
+                }
+                return this.promotionField;
+            }
+            set { this.promotionField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Promotion property
+        /// </summary>
+        /// <param name="list">Promotion property</param>
+        /// <returns>this instance</returns>
+        public Promotions WithPromotion(params Promotion[] list)
+        {
+            foreach (Promotion item in list)
+            {
+                Promotion.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Promotion property is set
+        /// </summary>
+        /// <returns>true if Promotion property is set</returns>
+        public Boolean IsSetPromotion()
+        {
+            return (Promotion.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Promotion> promotionList = this.Promotion;
+            foreach (Promotion promotion in promotionList) {
+                xml.Append("<Promotion>");
+                xml.Append(promotion.ToXMLFragment());
+                xml.Append("</Promotion>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Property.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Property.cs
new file mode 100644
index 0000000..2e82230
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Property.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Property
+    {
+    
+        private String nameField;
+
+        private String valueField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Property WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Value property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Value")]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public Property WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return  this.valueField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetValue()) {
+                xml.Append("<Value>");
+                xml.Append(EscapeXML(this.Value));
+                xml.Append("</Value>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/RequiredParameters.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/RequiredParameters.cs
new file mode 100644
index 0000000..1402395
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/RequiredParameters.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class RequiredParameters
+    {
+    
+        private List<String> parameterField;
+
+
+        /// <summary>
+        /// Gets and sets the Parameter property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Parameter")]
+        public List<String> Parameter
+        {
+            get
+            {
+                if (this.parameterField == null)
+                {
+                    this.parameterField = new List<String>();
+                }
+                return this.parameterField;
+            }
+            set { this.parameterField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Parameter property
+        /// </summary>
+        /// <param name="list">Parameter property</param>
+        /// <returns>this instance</returns>
+        public RequiredParameters WithParameter(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Parameter.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Parameter property is set
+        /// </summary>
+        /// <returns>true if Parameter property is set</returns>
+        public Boolean IsSetParameter()
+        {
+            return (Parameter.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> parameterList  =  this.Parameter;
+            foreach (String parameter in parameterList) { 
+                xml.Append("<Parameter>");
+                xml.Append(EscapeXML(parameter));
+                xml.Append("</Parameter>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupElements.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupElements.cs
new file mode 100644
index 0000000..f656bcd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupElements.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ResponseGroupElements
+    {
+    
+        private List<String> elementField;
+
+
+        /// <summary>
+        /// Gets and sets the Element property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Element")]
+        public List<String> Element
+        {
+            get
+            {
+                if (this.elementField == null)
+                {
+                    this.elementField = new List<String>();
+                }
+                return this.elementField;
+            }
+            set { this.elementField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Element property
+        /// </summary>
+        /// <param name="list">Element property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupElements WithElement(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Element.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Element property is set
+        /// </summary>
+        /// <returns>true if Element property is set</returns>
+        public Boolean IsSetElement()
+        {
+            return (Element.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> elementList  =  this.Element;
+            foreach (String element in elementList) { 
+                xml.Append("<Element>");
+                xml.Append(EscapeXML(element));
+                xml.Append("</Element>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupInformation.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupInformation.cs
new file mode 100644
index 0000000..9cf98bd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupInformation.cs
@@ -0,0 +1,264 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ResponseGroupInformation
+    {
+    
+        private String nameField;
+
+        private String creationDateField;
+
+        private  ResponseGroupValidOperations validOperationsField;
+        private  ResponseGroupElements elementsField;
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupInformation WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CreationDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CreationDate")]
+        public String CreationDate
+        {
+            get { return this.creationDateField ; }
+            set { this.creationDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CreationDate property
+        /// </summary>
+        /// <param name="creationDate">CreationDate property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupInformation WithCreationDate(String creationDate)
+        {
+            this.creationDateField = creationDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CreationDate property is set
+        /// </summary>
+        /// <returns>true if CreationDate property is set</returns>
+        public Boolean IsSetCreationDate()
+        {
+            return  this.creationDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ValidOperations property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ValidOperations")]
+        public ResponseGroupValidOperations ValidOperations
+        {
+            get { return this.validOperationsField ; }
+            set { this.validOperationsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ValidOperations property
+        /// </summary>
+        /// <param name="validOperations">ValidOperations property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupInformation WithValidOperations(ResponseGroupValidOperations validOperations)
+        {
+            this.validOperationsField = validOperations;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ValidOperations property is set
+        /// </summary>
+        /// <returns>true if ValidOperations property is set</returns>
+        public Boolean IsSetValidOperations()
+        {
+            return this.validOperationsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Elements property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Elements")]
+        public ResponseGroupElements Elements
+        {
+            get { return this.elementsField ; }
+            set { this.elementsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Elements property
+        /// </summary>
+        /// <param name="elements">Elements property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupInformation WithElements(ResponseGroupElements elements)
+        {
+            this.elementsField = elements;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Elements property is set
+        /// </summary>
+        /// <returns>true if Elements property is set</returns>
+        public Boolean IsSetElements()
+        {
+            return this.elementsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetCreationDate()) {
+                xml.Append("<CreationDate>");
+                xml.Append(EscapeXML(this.CreationDate));
+                xml.Append("</CreationDate>");
+            }
+            if (IsSetValidOperations()) {
+                ResponseGroupValidOperations  validOperations = this.ValidOperations;
+                xml.Append("<ValidOperations>");
+                xml.Append(validOperations.ToXMLFragment());
+                xml.Append("</ValidOperations>");
+            } 
+            if (IsSetElements()) {
+                ResponseGroupElements  elements = this.Elements;
+                xml.Append("<Elements>");
+                xml.Append(elements.ToXMLFragment());
+                xml.Append("</Elements>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupValidOperations.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupValidOperations.cs
new file mode 100644
index 0000000..6701fb3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ResponseGroupValidOperations.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ResponseGroupValidOperations
+    {
+    
+        private List<String> operationField;
+
+
+        /// <summary>
+        /// Gets and sets the Operation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Operation")]
+        public List<String> Operation
+        {
+            get
+            {
+                if (this.operationField == null)
+                {
+                    this.operationField = new List<String>();
+                }
+                return this.operationField;
+            }
+            set { this.operationField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Operation property
+        /// </summary>
+        /// <param name="list">Operation property</param>
+        /// <returns>this instance</returns>
+        public ResponseGroupValidOperations WithOperation(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Operation.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Operation property is set
+        /// </summary>
+        /// <returns>true if Operation property is set</returns>
+        public Boolean IsSetOperation()
+        {
+            return (Operation.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> operationList  =  this.Operation;
+            foreach (String operation in operationList) { 
+                xml.Append("<Operation>");
+                xml.Append(EscapeXML(operation));
+                xml.Append("</Operation>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Review.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Review.cs
new file mode 100644
index 0000000..877d4f3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Review.cs
@@ -0,0 +1,478 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Review
+    {
+    
+        private String ASINField;
+
+        private Decimal? ratingField;
+
+        private Decimal? helpfulVotesField;
+
+        private String customerIdField;
+
+        private  Reviewer reviewerField;
+        private Decimal? totalVotesField;
+
+        private String dateField;
+
+        private String summaryField;
+
+        private String contentField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public Review WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Rating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Rating")]
+        public Decimal Rating
+        {
+            get { return this.ratingField.GetValueOrDefault() ; }
+            set { this.ratingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Rating property
+        /// </summary>
+        /// <param name="rating">Rating property</param>
+        /// <returns>this instance</returns>
+        public Review WithRating(Decimal rating)
+        {
+            this.ratingField = rating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Rating property is set
+        /// </summary>
+        /// <returns>true if Rating property is set</returns>
+        public Boolean IsSetRating()
+        {
+            return  this.ratingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the HelpfulVotes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HelpfulVotes")]
+        public Decimal HelpfulVotes
+        {
+            get { return this.helpfulVotesField.GetValueOrDefault() ; }
+            set { this.helpfulVotesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HelpfulVotes property
+        /// </summary>
+        /// <param name="helpfulVotes">HelpfulVotes property</param>
+        /// <returns>this instance</returns>
+        public Review WithHelpfulVotes(Decimal helpfulVotes)
+        {
+            this.helpfulVotesField = helpfulVotes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HelpfulVotes property is set
+        /// </summary>
+        /// <returns>true if HelpfulVotes property is set</returns>
+        public Boolean IsSetHelpfulVotes()
+        {
+            return  this.helpfulVotesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerId")]
+        public String CustomerId
+        {
+            get { return this.customerIdField ; }
+            set { this.customerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerId property
+        /// </summary>
+        /// <param name="customerId">CustomerId property</param>
+        /// <returns>this instance</returns>
+        public Review WithCustomerId(String customerId)
+        {
+            this.customerIdField = customerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerId property is set
+        /// </summary>
+        /// <returns>true if CustomerId property is set</returns>
+        public Boolean IsSetCustomerId()
+        {
+            return  this.customerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Reviewer property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Reviewer")]
+        public Reviewer Reviewer
+        {
+            get { return this.reviewerField ; }
+            set { this.reviewerField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Reviewer property
+        /// </summary>
+        /// <param name="reviewer">Reviewer property</param>
+        /// <returns>this instance</returns>
+        public Review WithReviewer(Reviewer reviewer)
+        {
+            this.reviewerField = reviewer;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Reviewer property is set
+        /// </summary>
+        /// <returns>true if Reviewer property is set</returns>
+        public Boolean IsSetReviewer()
+        {
+            return this.reviewerField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalVotes property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVotes")]
+        public Decimal TotalVotes
+        {
+            get { return this.totalVotesField.GetValueOrDefault() ; }
+            set { this.totalVotesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVotes property
+        /// </summary>
+        /// <param name="totalVotes">TotalVotes property</param>
+        /// <returns>this instance</returns>
+        public Review WithTotalVotes(Decimal totalVotes)
+        {
+            this.totalVotesField = totalVotes;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVotes property is set
+        /// </summary>
+        /// <returns>true if TotalVotes property is set</returns>
+        public Boolean IsSetTotalVotes()
+        {
+            return  this.totalVotesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Date property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Date")]
+        public String Date
+        {
+            get { return this.dateField ; }
+            set { this.dateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Date property
+        /// </summary>
+        /// <param name="date">Date property</param>
+        /// <returns>this instance</returns>
+        public Review WithDate(String date)
+        {
+            this.dateField = date;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Date property is set
+        /// </summary>
+        /// <returns>true if Date property is set</returns>
+        public Boolean IsSetDate()
+        {
+            return  this.dateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Summary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Summary")]
+        public String Summary
+        {
+            get { return this.summaryField ; }
+            set { this.summaryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Summary property
+        /// </summary>
+        /// <param name="summary">Summary property</param>
+        /// <returns>this instance</returns>
+        public Review WithSummary(String summary)
+        {
+            this.summaryField = summary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Summary property is set
+        /// </summary>
+        /// <returns>true if Summary property is set</returns>
+        public Boolean IsSetSummary()
+        {
+            return  this.summaryField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Content property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Content")]
+        public String Content
+        {
+            get { return this.contentField ; }
+            set { this.contentField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Content property
+        /// </summary>
+        /// <param name="content">Content property</param>
+        /// <returns>this instance</returns>
+        public Review WithContent(String content)
+        {
+            this.contentField = content;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Content property is set
+        /// </summary>
+        /// <returns>true if Content property is set</returns>
+        public Boolean IsSetContent()
+        {
+            return  this.contentField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetRating()) {
+                xml.Append("<Rating>");
+                xml.Append(this.Rating);
+                xml.Append("</Rating>");
+            }
+            if (IsSetHelpfulVotes()) {
+                xml.Append("<HelpfulVotes>");
+                xml.Append(this.HelpfulVotes);
+                xml.Append("</HelpfulVotes>");
+            }
+            if (IsSetCustomerId()) {
+                xml.Append("<CustomerId>");
+                xml.Append(EscapeXML(this.CustomerId));
+                xml.Append("</CustomerId>");
+            }
+            if (IsSetReviewer()) {
+                Reviewer  reviewer = this.Reviewer;
+                xml.Append("<Reviewer>");
+                xml.Append(reviewer.ToXMLFragment());
+                xml.Append("</Reviewer>");
+            } 
+            if (IsSetTotalVotes()) {
+                xml.Append("<TotalVotes>");
+                xml.Append(this.TotalVotes);
+                xml.Append("</TotalVotes>");
+            }
+            if (IsSetDate()) {
+                xml.Append("<Date>");
+                xml.Append(EscapeXML(this.Date));
+                xml.Append("</Date>");
+            }
+            if (IsSetSummary()) {
+                xml.Append("<Summary>");
+                xml.Append(EscapeXML(this.Summary));
+                xml.Append("</Summary>");
+            }
+            if (IsSetContent()) {
+                xml.Append("<Content>");
+                xml.Append(EscapeXML(this.Content));
+                xml.Append("</Content>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Reviewer.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Reviewer.cs
new file mode 100644
index 0000000..3718051
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Reviewer.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Reviewer
+    {
+    
+        private String customerIdField;
+
+        private String nameField;
+
+        private String nicknameField;
+
+        private String locationField;
+
+
+        /// <summary>
+        /// Gets and sets the CustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerId")]
+        public String CustomerId
+        {
+            get { return this.customerIdField ; }
+            set { this.customerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerId property
+        /// </summary>
+        /// <param name="customerId">CustomerId property</param>
+        /// <returns>this instance</returns>
+        public Reviewer WithCustomerId(String customerId)
+        {
+            this.customerIdField = customerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerId property is set
+        /// </summary>
+        /// <returns>true if CustomerId property is set</returns>
+        public Boolean IsSetCustomerId()
+        {
+            return  this.customerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Reviewer WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Nickname property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Nickname")]
+        public String Nickname
+        {
+            get { return this.nicknameField ; }
+            set { this.nicknameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Nickname property
+        /// </summary>
+        /// <param name="nickname">Nickname property</param>
+        /// <returns>this instance</returns>
+        public Reviewer WithNickname(String nickname)
+        {
+            this.nicknameField = nickname;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Nickname property is set
+        /// </summary>
+        /// <returns>true if Nickname property is set</returns>
+        public Boolean IsSetNickname()
+        {
+            return  this.nicknameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Location property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Location")]
+        public String Location
+        {
+            get { return this.locationField ; }
+            set { this.locationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Location property
+        /// </summary>
+        /// <param name="location">Location property</param>
+        /// <returns>this instance</returns>
+        public Reviewer WithLocation(String location)
+        {
+            this.locationField = location;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Location property is set
+        /// </summary>
+        /// <returns>true if Location property is set</returns>
+        public Boolean IsSetLocation()
+        {
+            return  this.locationField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCustomerId()) {
+                xml.Append("<CustomerId>");
+                xml.Append(EscapeXML(this.CustomerId));
+                xml.Append("</CustomerId>");
+            }
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetNickname()) {
+                xml.Append("<Nickname>");
+                xml.Append(EscapeXML(this.Nickname));
+                xml.Append("</Nickname>");
+            }
+            if (IsSetLocation()) {
+                xml.Append("<Location>");
+                xml.Append(EscapeXML(this.Location));
+                xml.Append("</Location>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SavedForLaterItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SavedForLaterItems.cs
new file mode 100644
index 0000000..a2a24fc
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SavedForLaterItems.cs
@@ -0,0 +1,187 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SavedForLaterItems
+    {
+    
+        private  Price subTotalField;
+        private  List<CartItem> savedForLaterItemField;
+
+
+        /// <summary>
+        /// Gets and sets the SubTotal property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubTotal")]
+        public Price SubTotal
+        {
+            get { return this.subTotalField ; }
+            set { this.subTotalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubTotal property
+        /// </summary>
+        /// <param name="subTotal">SubTotal property</param>
+        /// <returns>this instance</returns>
+        public SavedForLaterItems WithSubTotal(Price subTotal)
+        {
+            this.subTotalField = subTotal;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubTotal property is set
+        /// </summary>
+        /// <returns>true if SubTotal property is set</returns>
+        public Boolean IsSetSubTotal()
+        {
+            return this.subTotalField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SavedForLaterItem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SavedForLaterItem")]
+        public List<CartItem> SavedForLaterItem
+        {
+            get
+            {
+                if (this.savedForLaterItemField == null)
+                {
+                    this.savedForLaterItemField = new List<CartItem>();
+                }
+                return this.savedForLaterItemField;
+            }
+            set { this.savedForLaterItemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SavedForLaterItem property
+        /// </summary>
+        /// <param name="list">SavedForLaterItem property</param>
+        /// <returns>this instance</returns>
+        public SavedForLaterItems WithSavedForLaterItem(params CartItem[] list)
+        {
+            foreach (CartItem item in list)
+            {
+                SavedForLaterItem.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SavedForLaterItem property is set
+        /// </summary>
+        /// <returns>true if SavedForLaterItem property is set</returns>
+        public Boolean IsSetSavedForLaterItem()
+        {
+            return (SavedForLaterItem.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSubTotal()) {
+                Price  subTotal = this.SubTotal;
+                xml.Append("<SubTotal>");
+                xml.Append(subTotal.ToXMLFragment());
+                xml.Append("</SubTotal>");
+            } 
+            List<CartItem> savedForLaterItemList = this.SavedForLaterItem;
+            foreach (CartItem savedForLaterItem in savedForLaterItemList) {
+                xml.Append("<SavedForLaterItem>");
+                xml.Append(savedForLaterItem.ToXMLFragment());
+                xml.Append("</SavedForLaterItem>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSet.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSet.cs
new file mode 100644
index 0000000..33c397e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSet.cs
@@ -0,0 +1,180 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchBinSet
+    {
+    
+        private  String narrowByField;
+        private  List<Bin> binField;
+
+
+        /// <summary>
+        /// Gets and sets the Bin property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Bin")]
+        public List<Bin> Bin
+        {
+            get
+            {
+                if (this.binField == null)
+                {
+                    this.binField = new List<Bin>();
+                }
+                return this.binField;
+            }
+            set { this.binField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Bin property
+        /// </summary>
+        /// <param name="list">Bin property</param>
+        /// <returns>this instance</returns>
+        public SearchBinSet WithBin(params Bin[] list)
+        {
+            foreach (Bin item in list)
+            {
+                Bin.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Bin property is set
+        /// </summary>
+        /// <returns>true if Bin property is set</returns>
+        public Boolean IsSetBin()
+        {
+            return (Bin.Count > 0);
+        }
+
+
+
+        /// <summary>
+        /// Gets and sets  the NarrowBy property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "NarrowBy")]
+        public String NarrowBy
+        {
+            get { return this.narrowByField ; }
+            set { this.narrowByField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the NarrowBy property
+        /// </summary>
+        /// <param name="narrowBy">NarrowBy property</param>
+        /// <returns>this instance</returns>
+        public SearchBinSet WithNarrowBy(String narrowBy)
+        {
+            this.narrowByField = narrowBy;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if NarrowBy property is set
+        /// </summary>
+        /// <returns>true if NarrowBy property is set</returns>
+        public Boolean IsSetNarrowBy()
+        {
+            return this.narrowByField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Bin> binList = this.Bin;
+            foreach (Bin bin in binList) {
+                xml.Append("<Bin>");
+                xml.Append(bin.ToXMLFragment());
+                xml.Append("</Bin>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSets.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSets.cs
new file mode 100644
index 0000000..c540bba
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchBinSets.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchBinSets
+    {
+    
+        private  List<SearchBinSet> searchBinSetField;
+
+
+        /// <summary>
+        /// Gets and sets the SearchBinSet property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchBinSet")]
+        public List<SearchBinSet> SearchBinSet
+        {
+            get
+            {
+                if (this.searchBinSetField == null)
+                {
+                    this.searchBinSetField = new List<SearchBinSet>();
+                }
+                return this.searchBinSetField;
+            }
+            set { this.searchBinSetField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchBinSet property
+        /// </summary>
+        /// <param name="list">SearchBinSet property</param>
+        /// <returns>this instance</returns>
+        public SearchBinSets WithSearchBinSet(params SearchBinSet[] list)
+        {
+            foreach (SearchBinSet item in list)
+            {
+                SearchBinSet.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SearchBinSet property is set
+        /// </summary>
+        /// <returns>true if SearchBinSet property is set</returns>
+        public Boolean IsSetSearchBinSet()
+        {
+            return (SearchBinSet.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<SearchBinSet> searchBinSetList = this.SearchBinSet;
+            foreach (SearchBinSet searchBinSet in searchBinSetList) {
+                xml.Append("<SearchBinSet NarrowBy=" + "\"" +  EscapeXML(searchBinSet.NarrowBy)  + "\"" +  ">");
+                xml.Append(searchBinSet.ToXMLFragment());
+                xml.Append("</SearchBinSet>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInside.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInside.cs
new file mode 100644
index 0000000..c6ce18d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInside.cs
@@ -0,0 +1,177 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchInside
+    {
+    
+        private Decimal? totalExcerptsField;
+
+        private  SearchInsideExcerpt excerptField;
+
+        /// <summary>
+        /// Gets and sets the TotalExcerpts property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalExcerpts")]
+        public Decimal TotalExcerpts
+        {
+            get { return this.totalExcerptsField.GetValueOrDefault() ; }
+            set { this.totalExcerptsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalExcerpts property
+        /// </summary>
+        /// <param name="totalExcerpts">TotalExcerpts property</param>
+        /// <returns>this instance</returns>
+        public SearchInside WithTotalExcerpts(Decimal totalExcerpts)
+        {
+            this.totalExcerptsField = totalExcerpts;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalExcerpts property is set
+        /// </summary>
+        /// <returns>true if TotalExcerpts property is set</returns>
+        public Boolean IsSetTotalExcerpts()
+        {
+            return  this.totalExcerptsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Excerpt property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Excerpt")]
+        public SearchInsideExcerpt Excerpt
+        {
+            get { return this.excerptField ; }
+            set { this.excerptField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Excerpt property
+        /// </summary>
+        /// <param name="excerpt">Excerpt property</param>
+        /// <returns>this instance</returns>
+        public SearchInside WithExcerpt(SearchInsideExcerpt excerpt)
+        {
+            this.excerptField = excerpt;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Excerpt property is set
+        /// </summary>
+        /// <returns>true if Excerpt property is set</returns>
+        public Boolean IsSetExcerpt()
+        {
+            return this.excerptField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalExcerpts()) {
+                xml.Append("<TotalExcerpts>");
+                xml.Append(this.TotalExcerpts);
+                xml.Append("</TotalExcerpts>");
+            }
+            if (IsSetExcerpt()) {
+                SearchInsideExcerpt  excerpt = this.Excerpt;
+                xml.Append("<Excerpt>");
+                xml.Append(excerpt.ToXMLFragment());
+                xml.Append("</Excerpt>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInsideExcerpt.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInsideExcerpt.cs
new file mode 100644
index 0000000..14e4030
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchInsideExcerpt.cs
@@ -0,0 +1,305 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchInsideExcerpt
+    {
+    
+        private String checksumField;
+
+        private String pageTypeField;
+
+        private String pageNumberField;
+
+        private String sequenceNumberField;
+
+        private String textField;
+
+
+        /// <summary>
+        /// Gets and sets the Checksum property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Checksum")]
+        public String Checksum
+        {
+            get { return this.checksumField ; }
+            set { this.checksumField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Checksum property
+        /// </summary>
+        /// <param name="checksum">Checksum property</param>
+        /// <returns>this instance</returns>
+        public SearchInsideExcerpt WithChecksum(String checksum)
+        {
+            this.checksumField = checksum;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Checksum property is set
+        /// </summary>
+        /// <returns>true if Checksum property is set</returns>
+        public Boolean IsSetChecksum()
+        {
+            return  this.checksumField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PageType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PageType")]
+        public String PageType
+        {
+            get { return this.pageTypeField ; }
+            set { this.pageTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PageType property
+        /// </summary>
+        /// <param name="pageType">PageType property</param>
+        /// <returns>this instance</returns>
+        public SearchInsideExcerpt WithPageType(String pageType)
+        {
+            this.pageTypeField = pageType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PageType property is set
+        /// </summary>
+        /// <returns>true if PageType property is set</returns>
+        public Boolean IsSetPageType()
+        {
+            return  this.pageTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PageNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PageNumber")]
+        public String PageNumber
+        {
+            get { return this.pageNumberField ; }
+            set { this.pageNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PageNumber property
+        /// </summary>
+        /// <param name="pageNumber">PageNumber property</param>
+        /// <returns>this instance</returns>
+        public SearchInsideExcerpt WithPageNumber(String pageNumber)
+        {
+            this.pageNumberField = pageNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PageNumber property is set
+        /// </summary>
+        /// <returns>true if PageNumber property is set</returns>
+        public Boolean IsSetPageNumber()
+        {
+            return  this.pageNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SequenceNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SequenceNumber")]
+        public String SequenceNumber
+        {
+            get { return this.sequenceNumberField ; }
+            set { this.sequenceNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SequenceNumber property
+        /// </summary>
+        /// <param name="sequenceNumber">SequenceNumber property</param>
+        /// <returns>this instance</returns>
+        public SearchInsideExcerpt WithSequenceNumber(String sequenceNumber)
+        {
+            this.sequenceNumberField = sequenceNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SequenceNumber property is set
+        /// </summary>
+        /// <returns>true if SequenceNumber property is set</returns>
+        public Boolean IsSetSequenceNumber()
+        {
+            return  this.sequenceNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Text property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Text")]
+        public String Text
+        {
+            get { return this.textField ; }
+            set { this.textField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Text property
+        /// </summary>
+        /// <param name="text">Text property</param>
+        /// <returns>this instance</returns>
+        public SearchInsideExcerpt WithText(String text)
+        {
+            this.textField = text;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Text property is set
+        /// </summary>
+        /// <returns>true if Text property is set</returns>
+        public Boolean IsSetText()
+        {
+            return  this.textField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetChecksum()) {
+                xml.Append("<Checksum>");
+                xml.Append(EscapeXML(this.Checksum));
+                xml.Append("</Checksum>");
+            }
+            if (IsSetPageType()) {
+                xml.Append("<PageType>");
+                xml.Append(EscapeXML(this.PageType));
+                xml.Append("</PageType>");
+            }
+            if (IsSetPageNumber()) {
+                xml.Append("<PageNumber>");
+                xml.Append(EscapeXML(this.PageNumber));
+                xml.Append("</PageNumber>");
+            }
+            if (IsSetSequenceNumber()) {
+                xml.Append("<SequenceNumber>");
+                xml.Append(EscapeXML(this.SequenceNumber));
+                xml.Append("</SequenceNumber>");
+            }
+            if (IsSetText()) {
+                xml.Append("<Text>");
+                xml.Append(EscapeXML(this.Text));
+                xml.Append("</Text>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMap.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMap.cs
new file mode 100644
index 0000000..d90fec8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMap.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchResultsMap
+    {
+    
+        private  List<SearchResultsMapSearchIndex> searchIndexField;
+
+
+        /// <summary>
+        /// Gets and sets the SearchIndex property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SearchIndex")]
+        public List<SearchResultsMapSearchIndex> SearchIndex
+        {
+            get
+            {
+                if (this.searchIndexField == null)
+                {
+                    this.searchIndexField = new List<SearchResultsMapSearchIndex>();
+                }
+                return this.searchIndexField;
+            }
+            set { this.searchIndexField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SearchIndex property
+        /// </summary>
+        /// <param name="list">SearchIndex property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMap WithSearchIndex(params SearchResultsMapSearchIndex[] list)
+        {
+            foreach (SearchResultsMapSearchIndex item in list)
+            {
+                SearchIndex.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SearchIndex property is set
+        /// </summary>
+        /// <returns>true if SearchIndex property is set</returns>
+        public Boolean IsSetSearchIndex()
+        {
+            return (SearchIndex.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<SearchResultsMapSearchIndex> searchIndexList = this.SearchIndex;
+            foreach (SearchResultsMapSearchIndex searchIndex in searchIndexList) {
+                xml.Append("<SearchIndex>");
+                xml.Append(searchIndex.ToXMLFragment());
+                xml.Append("</SearchIndex>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMapSearchIndex.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMapSearchIndex.cs
new file mode 100644
index 0000000..101f909
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SearchResultsMapSearchIndex.cs
@@ -0,0 +1,361 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SearchResultsMapSearchIndex
+    {
+    
+        private String indexNameField;
+
+        private Decimal? resultsField;
+
+        private Decimal? pagesField;
+
+        private  CorrectedQuery correctedQueryField;
+        private Decimal? relevanceRankField;
+
+        private List<String> ASINField;
+
+
+        /// <summary>
+        /// Gets and sets the IndexName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IndexName")]
+        public String IndexName
+        {
+            get { return this.indexNameField ; }
+            set { this.indexNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IndexName property
+        /// </summary>
+        /// <param name="indexName">IndexName property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithIndexName(String indexName)
+        {
+            this.indexNameField = indexName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IndexName property is set
+        /// </summary>
+        /// <returns>true if IndexName property is set</returns>
+        public Boolean IsSetIndexName()
+        {
+            return  this.indexNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Results property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Results")]
+        public Decimal Results
+        {
+            get { return this.resultsField.GetValueOrDefault() ; }
+            set { this.resultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Results property
+        /// </summary>
+        /// <param name="results">Results property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithResults(Decimal results)
+        {
+            this.resultsField = results;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Results property is set
+        /// </summary>
+        /// <returns>true if Results property is set</returns>
+        public Boolean IsSetResults()
+        {
+            return  this.resultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Pages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Pages")]
+        public Decimal Pages
+        {
+            get { return this.pagesField.GetValueOrDefault() ; }
+            set { this.pagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Pages property
+        /// </summary>
+        /// <param name="pages">Pages property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithPages(Decimal pages)
+        {
+            this.pagesField = pages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Pages property is set
+        /// </summary>
+        /// <returns>true if Pages property is set</returns>
+        public Boolean IsSetPages()
+        {
+            return  this.pagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CorrectedQuery property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CorrectedQuery")]
+        public CorrectedQuery CorrectedQuery
+        {
+            get { return this.correctedQueryField ; }
+            set { this.correctedQueryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CorrectedQuery property
+        /// </summary>
+        /// <param name="correctedQuery">CorrectedQuery property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithCorrectedQuery(CorrectedQuery correctedQuery)
+        {
+            this.correctedQueryField = correctedQuery;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CorrectedQuery property is set
+        /// </summary>
+        /// <returns>true if CorrectedQuery property is set</returns>
+        public Boolean IsSetCorrectedQuery()
+        {
+            return this.correctedQueryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the RelevanceRank property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "RelevanceRank")]
+        public Decimal RelevanceRank
+        {
+            get { return this.relevanceRankField.GetValueOrDefault() ; }
+            set { this.relevanceRankField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the RelevanceRank property
+        /// </summary>
+        /// <param name="relevanceRank">RelevanceRank property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithRelevanceRank(Decimal relevanceRank)
+        {
+            this.relevanceRankField = relevanceRank;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if RelevanceRank property is set
+        /// </summary>
+        /// <returns>true if RelevanceRank property is set</returns>
+        public Boolean IsSetRelevanceRank()
+        {
+            return  this.relevanceRankField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public List<String> ASIN
+        {
+            get
+            {
+                if (this.ASINField == null)
+                {
+                    this.ASINField = new List<String>();
+                }
+                return this.ASINField;
+            }
+            set { this.ASINField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="list">ASIN property</param>
+        /// <returns>this instance</returns>
+        public SearchResultsMapSearchIndex WithASIN(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ASIN.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return (ASIN.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetIndexName()) {
+                xml.Append("<IndexName>");
+                xml.Append(EscapeXML(this.IndexName));
+                xml.Append("</IndexName>");
+            }
+            if (IsSetResults()) {
+                xml.Append("<Results>");
+                xml.Append(this.Results);
+                xml.Append("</Results>");
+            }
+            if (IsSetPages()) {
+                xml.Append("<Pages>");
+                xml.Append(this.Pages);
+                xml.Append("</Pages>");
+            }
+            if (IsSetCorrectedQuery()) {
+                CorrectedQuery  correctedQuery = this.CorrectedQuery;
+                xml.Append("<CorrectedQuery>");
+                xml.Append(correctedQuery.ToXMLFragment());
+                xml.Append("</CorrectedQuery>");
+            } 
+            if (IsSetRelevanceRank()) {
+                xml.Append("<RelevanceRank>");
+                xml.Append(this.RelevanceRank);
+                xml.Append("</RelevanceRank>");
+            }
+            List<String> ASINList  =  this.ASIN;
+            foreach (String ASIN in ASINList) { 
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(ASIN));
+                xml.Append("</ASIN>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Seller.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Seller.cs
new file mode 100644
index 0000000..093db75
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Seller.cs
@@ -0,0 +1,652 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Seller
+    {
+    
+        private String sellerIdField;
+
+        private String sellerNameField;
+
+        private String sellerLegalNameField;
+
+        private String nicknameField;
+
+        private String glancePageField;
+
+        private String aboutField;
+
+        private String moreAboutField;
+
+        private  SellerLocation locationField;
+        private Decimal? averageFeedbackRatingField;
+
+        private Decimal? totalFeedbackField;
+
+        private Decimal? totalFeedbackPagesField;
+
+        private  SellerFeedbackSummary sellerFeedbackSummaryField;
+        private  SellerFeedback sellerFeedbackField;
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public String SellerId
+        {
+            get { return this.sellerIdField ; }
+            set { this.sellerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="sellerId">SellerId property</param>
+        /// <returns>this instance</returns>
+        public Seller WithSellerId(String sellerId)
+        {
+            this.sellerIdField = sellerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return  this.sellerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerName")]
+        public String SellerName
+        {
+            get { return this.sellerNameField ; }
+            set { this.sellerNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerName property
+        /// </summary>
+        /// <param name="sellerName">SellerName property</param>
+        /// <returns>this instance</returns>
+        public Seller WithSellerName(String sellerName)
+        {
+            this.sellerNameField = sellerName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerName property is set
+        /// </summary>
+        /// <returns>true if SellerName property is set</returns>
+        public Boolean IsSetSellerName()
+        {
+            return  this.sellerNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerLegalName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerLegalName")]
+        public String SellerLegalName
+        {
+            get { return this.sellerLegalNameField ; }
+            set { this.sellerLegalNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerLegalName property
+        /// </summary>
+        /// <param name="sellerLegalName">SellerLegalName property</param>
+        /// <returns>this instance</returns>
+        public Seller WithSellerLegalName(String sellerLegalName)
+        {
+            this.sellerLegalNameField = sellerLegalName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerLegalName property is set
+        /// </summary>
+        /// <returns>true if SellerLegalName property is set</returns>
+        public Boolean IsSetSellerLegalName()
+        {
+            return  this.sellerLegalNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Nickname property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Nickname")]
+        public String Nickname
+        {
+            get { return this.nicknameField ; }
+            set { this.nicknameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Nickname property
+        /// </summary>
+        /// <param name="nickname">Nickname property</param>
+        /// <returns>this instance</returns>
+        public Seller WithNickname(String nickname)
+        {
+            this.nicknameField = nickname;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Nickname property is set
+        /// </summary>
+        /// <returns>true if Nickname property is set</returns>
+        public Boolean IsSetNickname()
+        {
+            return  this.nicknameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the GlancePage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "GlancePage")]
+        public String GlancePage
+        {
+            get { return this.glancePageField ; }
+            set { this.glancePageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the GlancePage property
+        /// </summary>
+        /// <param name="glancePage">GlancePage property</param>
+        /// <returns>this instance</returns>
+        public Seller WithGlancePage(String glancePage)
+        {
+            this.glancePageField = glancePage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if GlancePage property is set
+        /// </summary>
+        /// <returns>true if GlancePage property is set</returns>
+        public Boolean IsSetGlancePage()
+        {
+            return  this.glancePageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the About property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "About")]
+        public String About
+        {
+            get { return this.aboutField ; }
+            set { this.aboutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the About property
+        /// </summary>
+        /// <param name="about">About property</param>
+        /// <returns>this instance</returns>
+        public Seller WithAbout(String about)
+        {
+            this.aboutField = about;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if About property is set
+        /// </summary>
+        /// <returns>true if About property is set</returns>
+        public Boolean IsSetAbout()
+        {
+            return  this.aboutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MoreAbout property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MoreAbout")]
+        public String MoreAbout
+        {
+            get { return this.moreAboutField ; }
+            set { this.moreAboutField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MoreAbout property
+        /// </summary>
+        /// <param name="moreAbout">MoreAbout property</param>
+        /// <returns>this instance</returns>
+        public Seller WithMoreAbout(String moreAbout)
+        {
+            this.moreAboutField = moreAbout;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MoreAbout property is set
+        /// </summary>
+        /// <returns>true if MoreAbout property is set</returns>
+        public Boolean IsSetMoreAbout()
+        {
+            return  this.moreAboutField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Location property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Location")]
+        public SellerLocation Location
+        {
+            get { return this.locationField ; }
+            set { this.locationField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Location property
+        /// </summary>
+        /// <param name="location">Location property</param>
+        /// <returns>this instance</returns>
+        public Seller WithLocation(SellerLocation location)
+        {
+            this.locationField = location;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Location property is set
+        /// </summary>
+        /// <returns>true if Location property is set</returns>
+        public Boolean IsSetLocation()
+        {
+            return this.locationField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the AverageFeedbackRating property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "AverageFeedbackRating")]
+        public Decimal AverageFeedbackRating
+        {
+            get { return this.averageFeedbackRatingField.GetValueOrDefault() ; }
+            set { this.averageFeedbackRatingField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the AverageFeedbackRating property
+        /// </summary>
+        /// <param name="averageFeedbackRating">AverageFeedbackRating property</param>
+        /// <returns>this instance</returns>
+        public Seller WithAverageFeedbackRating(Decimal averageFeedbackRating)
+        {
+            this.averageFeedbackRatingField = averageFeedbackRating;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if AverageFeedbackRating property is set
+        /// </summary>
+        /// <returns>true if AverageFeedbackRating property is set</returns>
+        public Boolean IsSetAverageFeedbackRating()
+        {
+            return  this.averageFeedbackRatingField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFeedback property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFeedback")]
+        public Decimal TotalFeedback
+        {
+            get { return this.totalFeedbackField.GetValueOrDefault() ; }
+            set { this.totalFeedbackField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFeedback property
+        /// </summary>
+        /// <param name="totalFeedback">TotalFeedback property</param>
+        /// <returns>this instance</returns>
+        public Seller WithTotalFeedback(Decimal totalFeedback)
+        {
+            this.totalFeedbackField = totalFeedback;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFeedback property is set
+        /// </summary>
+        /// <returns>true if TotalFeedback property is set</returns>
+        public Boolean IsSetTotalFeedback()
+        {
+            return  this.totalFeedbackField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalFeedbackPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalFeedbackPages")]
+        public Decimal TotalFeedbackPages
+        {
+            get { return this.totalFeedbackPagesField.GetValueOrDefault() ; }
+            set { this.totalFeedbackPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalFeedbackPages property
+        /// </summary>
+        /// <param name="totalFeedbackPages">TotalFeedbackPages property</param>
+        /// <returns>this instance</returns>
+        public Seller WithTotalFeedbackPages(Decimal totalFeedbackPages)
+        {
+            this.totalFeedbackPagesField = totalFeedbackPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalFeedbackPages property is set
+        /// </summary>
+        /// <returns>true if TotalFeedbackPages property is set</returns>
+        public Boolean IsSetTotalFeedbackPages()
+        {
+            return  this.totalFeedbackPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerFeedbackSummary property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerFeedbackSummary")]
+        public SellerFeedbackSummary SellerFeedbackSummary
+        {
+            get { return this.sellerFeedbackSummaryField ; }
+            set { this.sellerFeedbackSummaryField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerFeedbackSummary property
+        /// </summary>
+        /// <param name="sellerFeedbackSummary">SellerFeedbackSummary property</param>
+        /// <returns>this instance</returns>
+        public Seller WithSellerFeedbackSummary(SellerFeedbackSummary sellerFeedbackSummary)
+        {
+            this.sellerFeedbackSummaryField = sellerFeedbackSummary;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerFeedbackSummary property is set
+        /// </summary>
+        /// <returns>true if SellerFeedbackSummary property is set</returns>
+        public Boolean IsSetSellerFeedbackSummary()
+        {
+            return this.sellerFeedbackSummaryField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SellerFeedback property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerFeedback")]
+        public SellerFeedback SellerFeedback
+        {
+            get { return this.sellerFeedbackField ; }
+            set { this.sellerFeedbackField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerFeedback property
+        /// </summary>
+        /// <param name="sellerFeedback">SellerFeedback property</param>
+        /// <returns>this instance</returns>
+        public Seller WithSellerFeedback(SellerFeedback sellerFeedback)
+        {
+            this.sellerFeedbackField = sellerFeedback;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerFeedback property is set
+        /// </summary>
+        /// <returns>true if SellerFeedback property is set</returns>
+        public Boolean IsSetSellerFeedback()
+        {
+            return this.sellerFeedbackField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetSellerId()) {
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(this.SellerId));
+                xml.Append("</SellerId>");
+            }
+            if (IsSetSellerName()) {
+                xml.Append("<SellerName>");
+                xml.Append(EscapeXML(this.SellerName));
+                xml.Append("</SellerName>");
+            }
+            if (IsSetSellerLegalName()) {
+                xml.Append("<SellerLegalName>");
+                xml.Append(EscapeXML(this.SellerLegalName));
+                xml.Append("</SellerLegalName>");
+            }
+            if (IsSetNickname()) {
+                xml.Append("<Nickname>");
+                xml.Append(EscapeXML(this.Nickname));
+                xml.Append("</Nickname>");
+            }
+            if (IsSetGlancePage()) {
+                xml.Append("<GlancePage>");
+                xml.Append(EscapeXML(this.GlancePage));
+                xml.Append("</GlancePage>");
+            }
+            if (IsSetAbout()) {
+                xml.Append("<About>");
+                xml.Append(EscapeXML(this.About));
+                xml.Append("</About>");
+            }
+            if (IsSetMoreAbout()) {
+                xml.Append("<MoreAbout>");
+                xml.Append(EscapeXML(this.MoreAbout));
+                xml.Append("</MoreAbout>");
+            }
+            if (IsSetLocation()) {
+                SellerLocation  location = this.Location;
+                xml.Append("<Location>");
+                xml.Append(location.ToXMLFragment());
+                xml.Append("</Location>");
+            } 
+            if (IsSetAverageFeedbackRating()) {
+                xml.Append("<AverageFeedbackRating>");
+                xml.Append(this.AverageFeedbackRating);
+                xml.Append("</AverageFeedbackRating>");
+            }
+            if (IsSetTotalFeedback()) {
+                xml.Append("<TotalFeedback>");
+                xml.Append(this.TotalFeedback);
+                xml.Append("</TotalFeedback>");
+            }
+            if (IsSetTotalFeedbackPages()) {
+                xml.Append("<TotalFeedbackPages>");
+                xml.Append(this.TotalFeedbackPages);
+                xml.Append("</TotalFeedbackPages>");
+            }
+            if (IsSetSellerFeedbackSummary()) {
+                SellerFeedbackSummary  sellerFeedbackSummary = this.SellerFeedbackSummary;
+                xml.Append("<SellerFeedbackSummary>");
+                xml.Append(sellerFeedbackSummary.ToXMLFragment());
+                xml.Append("</SellerFeedbackSummary>");
+            } 
+            if (IsSetSellerFeedback()) {
+                SellerFeedback  sellerFeedback = this.SellerFeedback;
+                xml.Append("<SellerFeedback>");
+                xml.Append(sellerFeedback.ToXMLFragment());
+                xml.Append("</SellerFeedback>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedback.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedback.cs
new file mode 100644
index 0000000..94afbc5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedback.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerFeedback
+    {
+    
+        private  List<Feedback> feedbackField;
+
+
+        /// <summary>
+        /// Gets and sets the Feedback property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Feedback")]
+        public List<Feedback> Feedback
+        {
+            get
+            {
+                if (this.feedbackField == null)
+                {
+                    this.feedbackField = new List<Feedback>();
+                }
+                return this.feedbackField;
+            }
+            set { this.feedbackField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Feedback property
+        /// </summary>
+        /// <param name="list">Feedback property</param>
+        /// <returns>this instance</returns>
+        public SellerFeedback WithFeedback(params Feedback[] list)
+        {
+            foreach (Feedback item in list)
+            {
+                Feedback.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Feedback property is set
+        /// </summary>
+        /// <returns>true if Feedback property is set</returns>
+        public Boolean IsSetFeedback()
+        {
+            return (Feedback.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Feedback> feedbackList = this.Feedback;
+            foreach (Feedback feedback in feedbackList) {
+                xml.Append("<Feedback>");
+                xml.Append(feedback.ToXMLFragment());
+                xml.Append("</Feedback>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackRating.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackRating.cs
new file mode 100644
index 0000000..02f67ee
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackRating.cs
@@ -0,0 +1,213 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerFeedbackRating
+    {
+    
+        private  String typeField;
+        private Decimal? countField;
+
+        private Decimal? percentageField;
+
+
+        /// <summary>
+        /// Gets and sets the Count property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Count")]
+        public Decimal Count
+        {
+            get { return this.countField.GetValueOrDefault() ; }
+            set { this.countField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Count property
+        /// </summary>
+        /// <param name="count">Count property</param>
+        /// <returns>this instance</returns>
+        public SellerFeedbackRating WithCount(Decimal count)
+        {
+            this.countField = count;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Count property is set
+        /// </summary>
+        /// <returns>true if Count property is set</returns>
+        public Boolean IsSetCount()
+        {
+            return  this.countField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Percentage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Percentage")]
+        public Decimal Percentage
+        {
+            get { return this.percentageField.GetValueOrDefault() ; }
+            set { this.percentageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Percentage property
+        /// </summary>
+        /// <param name="percentage">Percentage property</param>
+        /// <returns>this instance</returns>
+        public SellerFeedbackRating WithPercentage(Decimal percentage)
+        {
+            this.percentageField = percentage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Percentage property is set
+        /// </summary>
+        /// <returns>true if Percentage property is set</returns>
+        public Boolean IsSetPercentage()
+        {
+            return  this.percentageField != null;
+
+        }
+
+
+
+        /// <summary>
+        /// Gets and sets  the Type property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Type")]
+        public String Type
+        {
+            get { return this.typeField ; }
+            set { this.typeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Type property
+        /// </summary>
+        /// <param name="type">Type property</param>
+        /// <returns>this instance</returns>
+        public SellerFeedbackRating WithType(String type)
+        {
+            this.typeField = type;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Type property is set
+        /// </summary>
+        /// <returns>true if Type property is set</returns>
+        public Boolean IsSetType()
+        {
+            return this.typeField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCount()) {
+                xml.Append("<Count>");
+                xml.Append(this.Count);
+                xml.Append("</Count>");
+            }
+            if (IsSetPercentage()) {
+                xml.Append("<Percentage>");
+                xml.Append(this.Percentage);
+                xml.Append("</Percentage>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackSummary.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackSummary.cs
new file mode 100644
index 0000000..9686dfd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerFeedbackSummary.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerFeedbackSummary
+    {
+    
+        private  List<FeedbackDateRange> feedbackDateRangeField;
+
+
+        /// <summary>
+        /// Gets and sets the FeedbackDateRange property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FeedbackDateRange")]
+        public List<FeedbackDateRange> FeedbackDateRange
+        {
+            get
+            {
+                if (this.feedbackDateRangeField == null)
+                {
+                    this.feedbackDateRangeField = new List<FeedbackDateRange>();
+                }
+                return this.feedbackDateRangeField;
+            }
+            set { this.feedbackDateRangeField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FeedbackDateRange property
+        /// </summary>
+        /// <param name="list">FeedbackDateRange property</param>
+        /// <returns>this instance</returns>
+        public SellerFeedbackSummary WithFeedbackDateRange(params FeedbackDateRange[] list)
+        {
+            foreach (FeedbackDateRange item in list)
+            {
+                FeedbackDateRange.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if FeedbackDateRange property is set
+        /// </summary>
+        /// <returns>true if FeedbackDateRange property is set</returns>
+        public Boolean IsSetFeedbackDateRange()
+        {
+            return (FeedbackDateRange.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<FeedbackDateRange> feedbackDateRangeList = this.FeedbackDateRange;
+            foreach (FeedbackDateRange feedbackDateRange in feedbackDateRangeList) {
+                xml.Append("<FeedbackDateRange Period=" + "\"" +  EscapeXML(feedbackDateRange.Period)  + "\"" +  ">");
+                xml.Append(feedbackDateRange.ToXMLFragment());
+                xml.Append("</FeedbackDateRange>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListing.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListing.cs
new file mode 100644
index 0000000..f1541f8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListing.cs
@@ -0,0 +1,823 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListing
+    {
+    
+        private String exchangeIdField;
+
+        private String listingIdField;
+
+        private String ASINField;
+
+        private String SKUField;
+
+        private String UPCField;
+
+        private String EANField;
+
+        private Boolean? willShipExpeditedField;
+
+        private Boolean? willShipInternationalField;
+
+        private String titleField;
+
+        private  Price priceField;
+        private String startDateField;
+
+        private String endDateField;
+
+        private String statusField;
+
+        private String quantityField;
+
+        private String conditionField;
+
+        private String subConditionField;
+
+        private  Seller sellerField;
+
+        /// <summary>
+        /// Gets and sets the ExchangeId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ExchangeId")]
+        public String ExchangeId
+        {
+            get { return this.exchangeIdField ; }
+            set { this.exchangeIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ExchangeId property
+        /// </summary>
+        /// <param name="exchangeId">ExchangeId property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithExchangeId(String exchangeId)
+        {
+            this.exchangeIdField = exchangeId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ExchangeId property is set
+        /// </summary>
+        /// <returns>true if ExchangeId property is set</returns>
+        public Boolean IsSetExchangeId()
+        {
+            return  this.exchangeIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListingId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListingId")]
+        public String ListingId
+        {
+            get { return this.listingIdField ; }
+            set { this.listingIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListingId property
+        /// </summary>
+        /// <param name="listingId">ListingId property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithListingId(String listingId)
+        {
+            this.listingIdField = listingId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListingId property is set
+        /// </summary>
+        /// <returns>true if ListingId property is set</returns>
+        public Boolean IsSetListingId()
+        {
+            return  this.listingIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SKU property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SKU")]
+        public String SKU
+        {
+            get { return this.SKUField ; }
+            set { this.SKUField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SKU property
+        /// </summary>
+        /// <param name="SKU">SKU property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithSKU(String SKU)
+        {
+            this.SKUField = SKU;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SKU property is set
+        /// </summary>
+        /// <returns>true if SKU property is set</returns>
+        public Boolean IsSetSKU()
+        {
+            return  this.SKUField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the UPC property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UPC")]
+        public String UPC
+        {
+            get { return this.UPCField ; }
+            set { this.UPCField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UPC property
+        /// </summary>
+        /// <param name="UPC">UPC property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithUPC(String UPC)
+        {
+            this.UPCField = UPC;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UPC property is set
+        /// </summary>
+        /// <returns>true if UPC property is set</returns>
+        public Boolean IsSetUPC()
+        {
+            return  this.UPCField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EAN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EAN")]
+        public String EAN
+        {
+            get { return this.EANField ; }
+            set { this.EANField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EAN property
+        /// </summary>
+        /// <param name="EAN">EAN property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithEAN(String EAN)
+        {
+            this.EANField = EAN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EAN property is set
+        /// </summary>
+        /// <returns>true if EAN property is set</returns>
+        public Boolean IsSetEAN()
+        {
+            return  this.EANField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WillShipExpedited property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WillShipExpedited")]
+        public Boolean WillShipExpedited
+        {
+            get { return this.willShipExpeditedField.GetValueOrDefault() ; }
+            set { this.willShipExpeditedField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WillShipExpedited property
+        /// </summary>
+        /// <param name="willShipExpedited">WillShipExpedited property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithWillShipExpedited(Boolean willShipExpedited)
+        {
+            this.willShipExpeditedField = willShipExpedited;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WillShipExpedited property is set
+        /// </summary>
+        /// <returns>true if WillShipExpedited property is set</returns>
+        public Boolean IsSetWillShipExpedited()
+        {
+            return  this.willShipExpeditedField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the WillShipInternational property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "WillShipInternational")]
+        public Boolean WillShipInternational
+        {
+            get { return this.willShipInternationalField.GetValueOrDefault() ; }
+            set { this.willShipInternationalField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the WillShipInternational property
+        /// </summary>
+        /// <param name="willShipInternational">WillShipInternational property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithWillShipInternational(Boolean willShipInternational)
+        {
+            this.willShipInternationalField = willShipInternational;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if WillShipInternational property is set
+        /// </summary>
+        /// <returns>true if WillShipInternational property is set</returns>
+        public Boolean IsSetWillShipInternational()
+        {
+            return  this.willShipInternationalField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Price property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Price")]
+        public Price Price
+        {
+            get { return this.priceField ; }
+            set { this.priceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Price property
+        /// </summary>
+        /// <param name="price">Price property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithPrice(Price price)
+        {
+            this.priceField = price;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Price property is set
+        /// </summary>
+        /// <returns>true if Price property is set</returns>
+        public Boolean IsSetPrice()
+        {
+            return this.priceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the StartDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StartDate")]
+        public String StartDate
+        {
+            get { return this.startDateField ; }
+            set { this.startDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StartDate property
+        /// </summary>
+        /// <param name="startDate">StartDate property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithStartDate(String startDate)
+        {
+            this.startDateField = startDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StartDate property is set
+        /// </summary>
+        /// <returns>true if StartDate property is set</returns>
+        public Boolean IsSetStartDate()
+        {
+            return  this.startDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EndDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EndDate")]
+        public String EndDate
+        {
+            get { return this.endDateField ; }
+            set { this.endDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EndDate property
+        /// </summary>
+        /// <param name="endDate">EndDate property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithEndDate(String endDate)
+        {
+            this.endDateField = endDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EndDate property is set
+        /// </summary>
+        /// <returns>true if EndDate property is set</returns>
+        public Boolean IsSetEndDate()
+        {
+            return  this.endDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Status property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Status")]
+        public String Status
+        {
+            get { return this.statusField ; }
+            set { this.statusField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Status property
+        /// </summary>
+        /// <param name="status">Status property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithStatus(String status)
+        {
+            this.statusField = status;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Status property is set
+        /// </summary>
+        /// <returns>true if Status property is set</returns>
+        public Boolean IsSetStatus()
+        {
+            return  this.statusField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public String Quantity
+        {
+            get { return this.quantityField ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithQuantity(String quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public String Condition
+        {
+            get { return this.conditionField ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithCondition(String condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return  this.conditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SubCondition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SubCondition")]
+        public String SubCondition
+        {
+            get { return this.subConditionField ; }
+            set { this.subConditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SubCondition property
+        /// </summary>
+        /// <param name="subCondition">SubCondition property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithSubCondition(String subCondition)
+        {
+            this.subConditionField = subCondition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SubCondition property is set
+        /// </summary>
+        /// <returns>true if SubCondition property is set</returns>
+        public Boolean IsSetSubCondition()
+        {
+            return  this.subConditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Seller property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Seller")]
+        public Seller Seller
+        {
+            get { return this.sellerField ; }
+            set { this.sellerField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Seller property
+        /// </summary>
+        /// <param name="seller">Seller property</param>
+        /// <returns>this instance</returns>
+        public SellerListing WithSeller(Seller seller)
+        {
+            this.sellerField = seller;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Seller property is set
+        /// </summary>
+        /// <returns>true if Seller property is set</returns>
+        public Boolean IsSetSeller()
+        {
+            return this.sellerField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetExchangeId()) {
+                xml.Append("<ExchangeId>");
+                xml.Append(EscapeXML(this.ExchangeId));
+                xml.Append("</ExchangeId>");
+            }
+            if (IsSetListingId()) {
+                xml.Append("<ListingId>");
+                xml.Append(EscapeXML(this.ListingId));
+                xml.Append("</ListingId>");
+            }
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetSKU()) {
+                xml.Append("<SKU>");
+                xml.Append(EscapeXML(this.SKU));
+                xml.Append("</SKU>");
+            }
+            if (IsSetUPC()) {
+                xml.Append("<UPC>");
+                xml.Append(EscapeXML(this.UPC));
+                xml.Append("</UPC>");
+            }
+            if (IsSetEAN()) {
+                xml.Append("<EAN>");
+                xml.Append(EscapeXML(this.EAN));
+                xml.Append("</EAN>");
+            }
+            if (IsSetWillShipExpedited()) {
+                xml.Append("<WillShipExpedited>");
+                xml.Append(this.WillShipExpedited);
+                xml.Append("</WillShipExpedited>");
+            }
+            if (IsSetWillShipInternational()) {
+                xml.Append("<WillShipInternational>");
+                xml.Append(this.WillShipInternational);
+                xml.Append("</WillShipInternational>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            if (IsSetPrice()) {
+                Price  price = this.Price;
+                xml.Append("<Price>");
+                xml.Append(price.ToXMLFragment());
+                xml.Append("</Price>");
+            } 
+            if (IsSetStartDate()) {
+                xml.Append("<StartDate>");
+                xml.Append(EscapeXML(this.StartDate));
+                xml.Append("</StartDate>");
+            }
+            if (IsSetEndDate()) {
+                xml.Append("<EndDate>");
+                xml.Append(EscapeXML(this.EndDate));
+                xml.Append("</EndDate>");
+            }
+            if (IsSetStatus()) {
+                xml.Append("<Status>");
+                xml.Append(EscapeXML(this.Status));
+                xml.Append("</Status>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(EscapeXML(this.Quantity));
+                xml.Append("</Quantity>");
+            }
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(EscapeXML(this.Condition));
+                xml.Append("</Condition>");
+            }
+            if (IsSetSubCondition()) {
+                xml.Append("<SubCondition>");
+                xml.Append(EscapeXML(this.SubCondition));
+                xml.Append("</SubCondition>");
+            }
+            if (IsSetSeller()) {
+                Seller  seller = this.Seller;
+                xml.Append("<Seller>");
+                xml.Append(seller.ToXMLFragment());
+                xml.Append("</Seller>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookup.cs
new file mode 100644
index 0000000..4066fe9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookup.cs
@@ -0,0 +1,122 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingLookup
+    {
+    
+        private  List<SellerListingLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<SellerListingLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<SellerListingLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookup WithRequest(params SellerListingLookupRequest[] list)
+        {
+            foreach (SellerListingLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "SellerListingLookup");
+            List<SellerListingLookupRequest> requestList = Request;
+            foreach (SellerListingLookupRequest request in requestList) 
+            {
+                if (request.IsSetId()) 
+                {
+                    parameters.Add("SellerListingLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Id", request.Id);
+                }
+                if (request.IsSetSellerId()) 
+                {
+                    parameters.Add("SellerListingLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "SellerId", request.SellerId);
+                }
+                if (request.IsSetIdType()) 
+                {
+                    parameters.Add("SellerListingLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "IdType", request.IdType.ToString());
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("SellerListingLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupRequest.cs
new file mode 100644
index 0000000..c6990b5
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupRequest.cs
@@ -0,0 +1,274 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingLookupRequest
+    {
+    
+        private String idField;
+
+        private String sellerIdField;
+
+        private String idTypeField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the Id property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Id")]
+        public String Id
+        {
+            get { return this.idField ; }
+            set { this.idField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Id property
+        /// </summary>
+        /// <param name="id">Id property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupRequest WithId(String id)
+        {
+            this.idField = id;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Id property is set
+        /// </summary>
+        /// <returns>true if Id property is set</returns>
+        public Boolean IsSetId()
+        {
+            return  this.idField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public String SellerId
+        {
+            get { return this.sellerIdField ; }
+            set { this.sellerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="sellerId">SellerId property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupRequest WithSellerId(String sellerId)
+        {
+            this.sellerIdField = sellerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return  this.sellerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the IdType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "IdType")]
+        public String IdType
+        {
+            get { return this.idTypeField ; }
+            set { this.idTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the IdType property
+        /// </summary>
+        /// <param name="idType">IdType property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupRequest WithIdType(String idType)
+        {
+            this.idTypeField = idType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if IdType property is set
+        /// </summary>
+        /// <returns>true if IdType property is set</returns>
+        public Boolean IsSetIdType()
+        {
+            return this.idTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetId()) {
+                xml.Append("<Id>");
+                xml.Append(EscapeXML(this.Id));
+                xml.Append("</Id>");
+            }
+            if (IsSetSellerId()) {
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(this.SellerId));
+                xml.Append("</SellerId>");
+            }
+            if (IsSetIdType()) {
+                xml.Append("<IdType>");
+                xml.Append(this.IdType);
+                xml.Append("</IdType>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupResponse.cs
new file mode 100644
index 0000000..5e00bae
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<SellerListings> sellerListingsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SellerListings property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerListings")]
+        public List<SellerListings> SellerListings
+        {
+            get
+            {
+                if (this.sellerListingsField == null)
+                {
+                    this.sellerListingsField = new List<SellerListings>();
+                }
+                return this.sellerListingsField;
+            }
+            set { this.sellerListingsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerListings property
+        /// </summary>
+        /// <param name="list">SellerListings property</param>
+        /// <returns>this instance</returns>
+        public SellerListingLookupResponse WithSellerListings(params SellerListings[] list)
+        {
+            foreach (SellerListings item in list)
+            {
+                SellerListings.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SellerListings property is set
+        /// </summary>
+        /// <returns>true if SellerListings property is set</returns>
+        public Boolean IsSetSellerListings()
+        {
+            return (SellerListings.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<SellerListingLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<SellerListings> sellerListingsList = this.SellerListings;
+            foreach (SellerListings sellerListings in sellerListingsList) {
+                xml.Append("<SellerListings>");
+                xml.Append(sellerListings.ToXMLFragment());
+                xml.Append("</SellerListings>");
+            }
+            xml.Append("</SellerListingLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearch.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearch.cs
new file mode 100644
index 0000000..3fc76ab
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearch.cs
@@ -0,0 +1,134 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingSearch
+    {
+    
+        private  List<SellerListingSearchRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<SellerListingSearchRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<SellerListingSearchRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearch WithRequest(params SellerListingSearchRequest[] list)
+        {
+            foreach (SellerListingSearchRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "SellerListingSearch");
+            List<SellerListingSearchRequest> requestList = Request;
+            foreach (SellerListingSearchRequest request in requestList) 
+            {
+                if (request.IsSetKeywords()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Keywords", request.Keywords);
+                }
+                if (request.IsSetListingPage()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ListingPage", request.ListingPage + "");
+                }
+                if (request.IsSetOfferStatus()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "OfferStatus", request.OfferStatus.ToString());
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetSellerId()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "SellerId", request.SellerId);
+                }
+                if (request.IsSetSort()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Sort", request.Sort);
+                }
+                if (request.IsSetTitle()) 
+                {
+                    parameters.Add("SellerListingSearch" + "."  + (requestList.IndexOf(request) + 1) + "." + "Title", request.Title);
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchRequest.cs
new file mode 100644
index 0000000..aa02596
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchRequest.cs
@@ -0,0 +1,403 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingSearchRequest
+    {
+    
+        private String keywordsField;
+
+        private Decimal? listingPageField;
+
+        private String offerStatusField;
+
+        private List<String> responseGroupField;
+
+        private String sellerIdField;
+
+        private String sortField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the Keywords property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Keywords")]
+        public String Keywords
+        {
+            get { return this.keywordsField ; }
+            set { this.keywordsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Keywords property
+        /// </summary>
+        /// <param name="keywords">Keywords property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithKeywords(String keywords)
+        {
+            this.keywordsField = keywords;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Keywords property is set
+        /// </summary>
+        /// <returns>true if Keywords property is set</returns>
+        public Boolean IsSetKeywords()
+        {
+            return  this.keywordsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ListingPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ListingPage")]
+        public Decimal ListingPage
+        {
+            get { return this.listingPageField.GetValueOrDefault() ; }
+            set { this.listingPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ListingPage property
+        /// </summary>
+        /// <param name="listingPage">ListingPage property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithListingPage(Decimal listingPage)
+        {
+            this.listingPageField = listingPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ListingPage property is set
+        /// </summary>
+        /// <returns>true if ListingPage property is set</returns>
+        public Boolean IsSetListingPage()
+        {
+            return  this.listingPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OfferStatus property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OfferStatus")]
+        public String OfferStatus
+        {
+            get { return this.offerStatusField ; }
+            set { this.offerStatusField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OfferStatus property
+        /// </summary>
+        /// <param name="offerStatus">OfferStatus property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithOfferStatus(String offerStatus)
+        {
+            this.offerStatusField = offerStatus;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OfferStatus property is set
+        /// </summary>
+        /// <returns>true if OfferStatus property is set</returns>
+        public Boolean IsSetOfferStatus()
+        {
+            return this.offerStatusField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public String SellerId
+        {
+            get { return this.sellerIdField ; }
+            set { this.sellerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="sellerId">SellerId property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithSellerId(String sellerId)
+        {
+            this.sellerIdField = sellerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return  this.sellerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Sort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Sort")]
+        public String Sort
+        {
+            get { return this.sortField ; }
+            set { this.sortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Sort property
+        /// </summary>
+        /// <param name="sort">Sort property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithSort(String sort)
+        {
+            this.sortField = sort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Sort property is set
+        /// </summary>
+        /// <returns>true if Sort property is set</returns>
+        public Boolean IsSetSort()
+        {
+            return  this.sortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchRequest WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetKeywords()) {
+                xml.Append("<Keywords>");
+                xml.Append(EscapeXML(this.Keywords));
+                xml.Append("</Keywords>");
+            }
+            if (IsSetListingPage()) {
+                xml.Append("<ListingPage>");
+                xml.Append(this.ListingPage);
+                xml.Append("</ListingPage>");
+            }
+            if (IsSetOfferStatus()) {
+                xml.Append("<OfferStatus>");
+                xml.Append(this.OfferStatus);
+                xml.Append("</OfferStatus>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetSellerId()) {
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(this.SellerId));
+                xml.Append("</SellerId>");
+            }
+            if (IsSetSort()) {
+                xml.Append("<Sort>");
+                xml.Append(EscapeXML(this.Sort));
+                xml.Append("</Sort>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchResponse.cs
new file mode 100644
index 0000000..5891894
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListingSearchResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListingSearchResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<SellerListings> sellerListingsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SellerListings property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerListings")]
+        public List<SellerListings> SellerListings
+        {
+            get
+            {
+                if (this.sellerListingsField == null)
+                {
+                    this.sellerListingsField = new List<SellerListings>();
+                }
+                return this.sellerListingsField;
+            }
+            set { this.sellerListingsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerListings property
+        /// </summary>
+        /// <param name="list">SellerListings property</param>
+        /// <returns>this instance</returns>
+        public SellerListingSearchResponse WithSellerListings(params SellerListings[] list)
+        {
+            foreach (SellerListings item in list)
+            {
+                SellerListings.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SellerListings property is set
+        /// </summary>
+        /// <returns>true if SellerListings property is set</returns>
+        public Boolean IsSetSellerListings()
+        {
+            return (SellerListings.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<SellerListingSearchResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<SellerListings> sellerListingsList = this.SellerListings;
+            foreach (SellerListings sellerListings in sellerListingsList) {
+                xml.Append("<SellerListings>");
+                xml.Append(sellerListings.ToXMLFragment());
+                xml.Append("</SellerListings>");
+            }
+            xml.Append("</SellerListingSearchResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListings.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListings.cs
new file mode 100644
index 0000000..c8f0984
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerListings.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerListings
+    {
+    
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  List<SellerListing> sellerListingField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public SellerListings WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public SellerListings WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerListing property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerListing")]
+        public List<SellerListing> SellerListing
+        {
+            get
+            {
+                if (this.sellerListingField == null)
+                {
+                    this.sellerListingField = new List<SellerListing>();
+                }
+                return this.sellerListingField;
+            }
+            set { this.sellerListingField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerListing property
+        /// </summary>
+        /// <param name="list">SellerListing property</param>
+        /// <returns>this instance</returns>
+        public SellerListings WithSellerListing(params SellerListing[] list)
+        {
+            foreach (SellerListing item in list)
+            {
+                SellerListing.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SellerListing property is set
+        /// </summary>
+        /// <returns>true if SellerListing property is set</returns>
+        public Boolean IsSetSellerListing()
+        {
+            return (SellerListing.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            List<SellerListing> sellerListingList = this.SellerListing;
+            foreach (SellerListing sellerListing in sellerListingList) {
+                xml.Append("<SellerListing>");
+                xml.Append(sellerListing.ToXMLFragment());
+                xml.Append("</SellerListing>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLocation.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLocation.cs
new file mode 100644
index 0000000..588c3c3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLocation.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerLocation
+    {
+    
+        private String userDefinedLocationField;
+
+        private String cityField;
+
+        private String stateField;
+
+        private String countryField;
+
+
+        /// <summary>
+        /// Gets and sets the UserDefinedLocation property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UserDefinedLocation")]
+        public String UserDefinedLocation
+        {
+            get { return this.userDefinedLocationField ; }
+            set { this.userDefinedLocationField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UserDefinedLocation property
+        /// </summary>
+        /// <param name="userDefinedLocation">UserDefinedLocation property</param>
+        /// <returns>this instance</returns>
+        public SellerLocation WithUserDefinedLocation(String userDefinedLocation)
+        {
+            this.userDefinedLocationField = userDefinedLocation;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UserDefinedLocation property is set
+        /// </summary>
+        /// <returns>true if UserDefinedLocation property is set</returns>
+        public Boolean IsSetUserDefinedLocation()
+        {
+            return  this.userDefinedLocationField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the City property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "City")]
+        public String City
+        {
+            get { return this.cityField ; }
+            set { this.cityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the City property
+        /// </summary>
+        /// <param name="city">City property</param>
+        /// <returns>this instance</returns>
+        public SellerLocation WithCity(String city)
+        {
+            this.cityField = city;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if City property is set
+        /// </summary>
+        /// <returns>true if City property is set</returns>
+        public Boolean IsSetCity()
+        {
+            return  this.cityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the State property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "State")]
+        public String State
+        {
+            get { return this.stateField ; }
+            set { this.stateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the State property
+        /// </summary>
+        /// <param name="state">State property</param>
+        /// <returns>this instance</returns>
+        public SellerLocation WithState(String state)
+        {
+            this.stateField = state;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if State property is set
+        /// </summary>
+        /// <returns>true if State property is set</returns>
+        public Boolean IsSetState()
+        {
+            return  this.stateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Country property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Country")]
+        public String Country
+        {
+            get { return this.countryField ; }
+            set { this.countryField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Country property
+        /// </summary>
+        /// <param name="country">Country property</param>
+        /// <returns>this instance</returns>
+        public SellerLocation WithCountry(String country)
+        {
+            this.countryField = country;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Country property is set
+        /// </summary>
+        /// <returns>true if Country property is set</returns>
+        public Boolean IsSetCountry()
+        {
+            return  this.countryField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetUserDefinedLocation()) {
+                xml.Append("<UserDefinedLocation>");
+                xml.Append(EscapeXML(this.UserDefinedLocation));
+                xml.Append("</UserDefinedLocation>");
+            }
+            if (IsSetCity()) {
+                xml.Append("<City>");
+                xml.Append(EscapeXML(this.City));
+                xml.Append("</City>");
+            }
+            if (IsSetState()) {
+                xml.Append("<State>");
+                xml.Append(EscapeXML(this.State));
+                xml.Append("</State>");
+            }
+            if (IsSetCountry()) {
+                xml.Append("<Country>");
+                xml.Append(EscapeXML(this.Country));
+                xml.Append("</Country>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookup.cs
new file mode 100644
index 0000000..695fc8d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookup.cs
@@ -0,0 +1,119 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerLookup
+    {
+    
+        private  List<SellerLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<SellerLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<SellerLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public SellerLookup WithRequest(params SellerLookupRequest[] list)
+        {
+            foreach (SellerLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "SellerLookup");
+            List<SellerLookupRequest> requestList = Request;
+            foreach (SellerLookupRequest request in requestList) 
+            {
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("SellerLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                List<String> sellerIdList  =  request.SellerId;
+                foreach  (String sellerId in sellerIdList)
+                { 
+                    parameters.Add("SellerLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "SellerId" + "."  + (sellerIdList.IndexOf(sellerId) + 1), sellerId);
+                }	
+                if (request.IsSetFeedbackPage()) 
+                {
+                    parameters.Add("SellerLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "FeedbackPage", request.FeedbackPage + "");
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupRequest.cs
new file mode 100644
index 0000000..fc20baf
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupRequest.cs
@@ -0,0 +1,243 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerLookupRequest
+    {
+    
+        private List<String> responseGroupField;
+
+        private List<String> sellerIdField;
+
+        private Decimal? feedbackPageField;
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public SellerLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public List<String> SellerId
+        {
+            get
+            {
+                if (this.sellerIdField == null)
+                {
+                    this.sellerIdField = new List<String>();
+                }
+                return this.sellerIdField;
+            }
+            set { this.sellerIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="list">SellerId property</param>
+        /// <returns>this instance</returns>
+        public SellerLookupRequest WithSellerId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                SellerId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return (SellerId.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the FeedbackPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FeedbackPage")]
+        public Decimal FeedbackPage
+        {
+            get { return this.feedbackPageField.GetValueOrDefault() ; }
+            set { this.feedbackPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FeedbackPage property
+        /// </summary>
+        /// <param name="feedbackPage">FeedbackPage property</param>
+        /// <returns>this instance</returns>
+        public SellerLookupRequest WithFeedbackPage(Decimal feedbackPage)
+        {
+            this.feedbackPageField = feedbackPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FeedbackPage property is set
+        /// </summary>
+        /// <returns>true if FeedbackPage property is set</returns>
+        public Boolean IsSetFeedbackPage()
+        {
+            return  this.feedbackPageField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            List<String> sellerIdList  =  this.SellerId;
+            foreach (String sellerId in sellerIdList) { 
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(sellerId));
+                xml.Append("</SellerId>");
+            }	
+            if (IsSetFeedbackPage()) {
+                xml.Append("<FeedbackPage>");
+                xml.Append(this.FeedbackPage);
+                xml.Append("</FeedbackPage>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupResponse.cs
new file mode 100644
index 0000000..9ff7e9b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SellerLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SellerLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Sellers> sellersField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public SellerLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Sellers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Sellers")]
+        public List<Sellers> Sellers
+        {
+            get
+            {
+                if (this.sellersField == null)
+                {
+                    this.sellersField = new List<Sellers>();
+                }
+                return this.sellersField;
+            }
+            set { this.sellersField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Sellers property
+        /// </summary>
+        /// <param name="list">Sellers property</param>
+        /// <returns>this instance</returns>
+        public SellerLookupResponse WithSellers(params Sellers[] list)
+        {
+            foreach (Sellers item in list)
+            {
+                Sellers.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Sellers property is set
+        /// </summary>
+        /// <returns>true if Sellers property is set</returns>
+        public Boolean IsSetSellers()
+        {
+            return (Sellers.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<SellerLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Sellers> sellersList = this.Sellers;
+            foreach (Sellers sellers in sellersList) {
+                xml.Append("<Sellers>");
+                xml.Append(sellers.ToXMLFragment());
+                xml.Append("</Sellers>");
+            }
+            xml.Append("</SellerLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Sellers.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Sellers.cs
new file mode 100644
index 0000000..9f1cc2f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Sellers.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Sellers
+    {
+    
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  List<Seller> sellerField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public Sellers WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public Sellers WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Seller property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Seller")]
+        public List<Seller> Seller
+        {
+            get
+            {
+                if (this.sellerField == null)
+                {
+                    this.sellerField = new List<Seller>();
+                }
+                return this.sellerField;
+            }
+            set { this.sellerField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Seller property
+        /// </summary>
+        /// <param name="list">Seller property</param>
+        /// <returns>this instance</returns>
+        public Sellers WithSeller(params Seller[] list)
+        {
+            foreach (Seller item in list)
+            {
+                Seller.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Seller property is set
+        /// </summary>
+        /// <returns>true if Seller property is set</returns>
+        public Boolean IsSetSeller()
+        {
+            return (Seller.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            List<Seller> sellerList = this.Seller;
+            foreach (Seller seller in sellerList) {
+                xml.Append("<Seller>");
+                xml.Append(seller.ToXMLFragment());
+                xml.Append("</Seller>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Shipment.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Shipment.cs
new file mode 100644
index 0000000..dbe36c6
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Shipment.cs
@@ -0,0 +1,264 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Shipment
+    {
+    
+        private String conditionField;
+
+        private String deliveryMethodField;
+
+        private  ShipmentItems shipmentItemsField;
+        private  ShipmentPackages packagesField;
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public String Condition
+        {
+            get { return this.conditionField ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public Shipment WithCondition(String condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return  this.conditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryMethod")]
+        public String DeliveryMethod
+        {
+            get { return this.deliveryMethodField ; }
+            set { this.deliveryMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryMethod property
+        /// </summary>
+        /// <param name="deliveryMethod">DeliveryMethod property</param>
+        /// <returns>this instance</returns>
+        public Shipment WithDeliveryMethod(String deliveryMethod)
+        {
+            this.deliveryMethodField = deliveryMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryMethod property is set
+        /// </summary>
+        /// <returns>true if DeliveryMethod property is set</returns>
+        public Boolean IsSetDeliveryMethod()
+        {
+            return  this.deliveryMethodField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ShipmentItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShipmentItems")]
+        public ShipmentItems ShipmentItems
+        {
+            get { return this.shipmentItemsField ; }
+            set { this.shipmentItemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShipmentItems property
+        /// </summary>
+        /// <param name="shipmentItems">ShipmentItems property</param>
+        /// <returns>this instance</returns>
+        public Shipment WithShipmentItems(ShipmentItems shipmentItems)
+        {
+            this.shipmentItemsField = shipmentItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ShipmentItems property is set
+        /// </summary>
+        /// <returns>true if ShipmentItems property is set</returns>
+        public Boolean IsSetShipmentItems()
+        {
+            return this.shipmentItemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Packages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Packages")]
+        public ShipmentPackages Packages
+        {
+            get { return this.packagesField ; }
+            set { this.packagesField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Packages property
+        /// </summary>
+        /// <param name="packages">Packages property</param>
+        /// <returns>this instance</returns>
+        public Shipment WithPackages(ShipmentPackages packages)
+        {
+            this.packagesField = packages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Packages property is set
+        /// </summary>
+        /// <returns>true if Packages property is set</returns>
+        public Boolean IsSetPackages()
+        {
+            return this.packagesField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(EscapeXML(this.Condition));
+                xml.Append("</Condition>");
+            }
+            if (IsSetDeliveryMethod()) {
+                xml.Append("<DeliveryMethod>");
+                xml.Append(EscapeXML(this.DeliveryMethod));
+                xml.Append("</DeliveryMethod>");
+            }
+            if (IsSetShipmentItems()) {
+                ShipmentItems  shipmentItems = this.ShipmentItems;
+                xml.Append("<ShipmentItems>");
+                xml.Append(shipmentItems.ToXMLFragment());
+                xml.Append("</ShipmentItems>");
+            } 
+            if (IsSetPackages()) {
+                ShipmentPackages  packages = this.Packages;
+                xml.Append("<Packages>");
+                xml.Append(packages.ToXMLFragment());
+                xml.Append("</Packages>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentItems.cs
new file mode 100644
index 0000000..f7ff201
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentItems.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ShipmentItems
+    {
+    
+        private List<String> transactionItemIdField;
+
+
+        /// <summary>
+        /// Gets and sets the TransactionItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionItemId")]
+        public List<String> TransactionItemId
+        {
+            get
+            {
+                if (this.transactionItemIdField == null)
+                {
+                    this.transactionItemIdField = new List<String>();
+                }
+                return this.transactionItemIdField;
+            }
+            set { this.transactionItemIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionItemId property
+        /// </summary>
+        /// <param name="list">TransactionItemId property</param>
+        /// <returns>this instance</returns>
+        public ShipmentItems WithTransactionItemId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                TransactionItemId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of TransactionItemId property is set
+        /// </summary>
+        /// <returns>true if TransactionItemId property is set</returns>
+        public Boolean IsSetTransactionItemId()
+        {
+            return (TransactionItemId.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> transactionItemIdList  =  this.TransactionItemId;
+            foreach (String transactionItemId in transactionItemIdList) { 
+                xml.Append("<TransactionItemId>");
+                xml.Append(EscapeXML(transactionItemId));
+                xml.Append("</TransactionItemId>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackage.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackage.cs
new file mode 100644
index 0000000..58d528b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackage.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ShipmentPackage
+    {
+    
+        private String trackingNumberField;
+
+        private String carrierNameField;
+
+
+        /// <summary>
+        /// Gets and sets the TrackingNumber property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TrackingNumber")]
+        public String TrackingNumber
+        {
+            get { return this.trackingNumberField ; }
+            set { this.trackingNumberField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TrackingNumber property
+        /// </summary>
+        /// <param name="trackingNumber">TrackingNumber property</param>
+        /// <returns>this instance</returns>
+        public ShipmentPackage WithTrackingNumber(String trackingNumber)
+        {
+            this.trackingNumberField = trackingNumber;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TrackingNumber property is set
+        /// </summary>
+        /// <returns>true if TrackingNumber property is set</returns>
+        public Boolean IsSetTrackingNumber()
+        {
+            return  this.trackingNumberField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the CarrierName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CarrierName")]
+        public String CarrierName
+        {
+            get { return this.carrierNameField ; }
+            set { this.carrierNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CarrierName property
+        /// </summary>
+        /// <param name="carrierName">CarrierName property</param>
+        /// <returns>this instance</returns>
+        public ShipmentPackage WithCarrierName(String carrierName)
+        {
+            this.carrierNameField = carrierName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CarrierName property is set
+        /// </summary>
+        /// <returns>true if CarrierName property is set</returns>
+        public Boolean IsSetCarrierName()
+        {
+            return  this.carrierNameField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTrackingNumber()) {
+                xml.Append("<TrackingNumber>");
+                xml.Append(EscapeXML(this.TrackingNumber));
+                xml.Append("</TrackingNumber>");
+            }
+            if (IsSetCarrierName()) {
+                xml.Append("<CarrierName>");
+                xml.Append(EscapeXML(this.CarrierName));
+                xml.Append("</CarrierName>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackages.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackages.cs
new file mode 100644
index 0000000..4673e2d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShipmentPackages.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ShipmentPackages
+    {
+    
+        private  List<ShipmentPackage> packageField;
+
+
+        /// <summary>
+        /// Gets and sets the Package property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Package")]
+        public List<ShipmentPackage> Package
+        {
+            get
+            {
+                if (this.packageField == null)
+                {
+                    this.packageField = new List<ShipmentPackage>();
+                }
+                return this.packageField;
+            }
+            set { this.packageField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Package property
+        /// </summary>
+        /// <param name="list">Package property</param>
+        /// <returns>this instance</returns>
+        public ShipmentPackages WithPackage(params ShipmentPackage[] list)
+        {
+            foreach (ShipmentPackage item in list)
+            {
+                Package.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Package property is set
+        /// </summary>
+        /// <returns>true if Package property is set</returns>
+        public Boolean IsSetPackage()
+        {
+            return (Package.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<ShipmentPackage> packageList = this.Package;
+            foreach (ShipmentPackage package in packageList) {
+                xml.Append("<Package>");
+                xml.Append(package.ToXMLFragment());
+                xml.Append("</Package>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShippingCharge.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShippingCharge.cs
new file mode 100644
index 0000000..58a34ce
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/ShippingCharge.cs
@@ -0,0 +1,177 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class ShippingCharge
+    {
+    
+        private String shippingTypeField;
+
+        private  Price shippingPriceField;
+
+        /// <summary>
+        /// Gets and sets the ShippingType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShippingType")]
+        public String ShippingType
+        {
+            get { return this.shippingTypeField ; }
+            set { this.shippingTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShippingType property
+        /// </summary>
+        /// <param name="shippingType">ShippingType property</param>
+        /// <returns>this instance</returns>
+        public ShippingCharge WithShippingType(String shippingType)
+        {
+            this.shippingTypeField = shippingType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ShippingType property is set
+        /// </summary>
+        /// <returns>true if ShippingType property is set</returns>
+        public Boolean IsSetShippingType()
+        {
+            return  this.shippingTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ShippingPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShippingPrice")]
+        public Price ShippingPrice
+        {
+            get { return this.shippingPriceField ; }
+            set { this.shippingPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShippingPrice property
+        /// </summary>
+        /// <param name="shippingPrice">ShippingPrice property</param>
+        /// <returns>this instance</returns>
+        public ShippingCharge WithShippingPrice(Price shippingPrice)
+        {
+            this.shippingPriceField = shippingPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ShippingPrice property is set
+        /// </summary>
+        /// <returns>true if ShippingPrice property is set</returns>
+        public Boolean IsSetShippingPrice()
+        {
+            return this.shippingPriceField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetShippingType()) {
+                xml.Append("<ShippingType>");
+                xml.Append(EscapeXML(this.ShippingType));
+                xml.Append("</ShippingType>");
+            }
+            if (IsSetShippingPrice()) {
+                Price  shippingPrice = this.ShippingPrice;
+                xml.Append("<ShippingPrice>");
+                xml.Append(shippingPrice.ToXMLFragment());
+                xml.Append("</ShippingPrice>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProduct.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProduct.cs
new file mode 100644
index 0000000..7570271
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProduct.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarProduct
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public SimilarProduct WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public SimilarProduct WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProducts.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProducts.cs
new file mode 100644
index 0000000..37e1bfd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarProducts.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarProducts
+    {
+    
+        private  List<SimilarProduct> similarProductField;
+
+
+        /// <summary>
+        /// Gets and sets the SimilarProduct property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarProduct")]
+        public List<SimilarProduct> SimilarProduct
+        {
+            get
+            {
+                if (this.similarProductField == null)
+                {
+                    this.similarProductField = new List<SimilarProduct>();
+                }
+                return this.similarProductField;
+            }
+            set { this.similarProductField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarProduct property
+        /// </summary>
+        /// <param name="list">SimilarProduct property</param>
+        /// <returns>this instance</returns>
+        public SimilarProducts WithSimilarProduct(params SimilarProduct[] list)
+        {
+            foreach (SimilarProduct item in list)
+            {
+                SimilarProduct.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SimilarProduct property is set
+        /// </summary>
+        /// <returns>true if SimilarProduct property is set</returns>
+        public Boolean IsSetSimilarProduct()
+        {
+            return (SimilarProduct.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<SimilarProduct> similarProductList = this.SimilarProduct;
+            foreach (SimilarProduct similarProduct in similarProductList) {
+                xml.Append("<SimilarProduct>");
+                xml.Append(similarProduct.ToXMLFragment());
+                xml.Append("</SimilarProduct>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProduct.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProduct.cs
new file mode 100644
index 0000000..5496fb8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProduct.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarViewedProduct
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public SimilarViewedProduct WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public SimilarViewedProduct WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProducts.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProducts.cs
new file mode 100644
index 0000000..d8d544d
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarViewedProducts.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarViewedProducts
+    {
+    
+        private  List<SimilarViewedProduct> similarViewedProductField;
+
+
+        /// <summary>
+        /// Gets and sets the SimilarViewedProduct property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarViewedProduct")]
+        public List<SimilarViewedProduct> SimilarViewedProduct
+        {
+            get
+            {
+                if (this.similarViewedProductField == null)
+                {
+                    this.similarViewedProductField = new List<SimilarViewedProduct>();
+                }
+                return this.similarViewedProductField;
+            }
+            set { this.similarViewedProductField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarViewedProduct property
+        /// </summary>
+        /// <param name="list">SimilarViewedProduct property</param>
+        /// <returns>this instance</returns>
+        public SimilarViewedProducts WithSimilarViewedProduct(params SimilarViewedProduct[] list)
+        {
+            foreach (SimilarViewedProduct item in list)
+            {
+                SimilarViewedProduct.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if SimilarViewedProduct property is set
+        /// </summary>
+        /// <returns>true if SimilarViewedProduct property is set</returns>
+        public Boolean IsSetSimilarViewedProduct()
+        {
+            return (SimilarViewedProduct.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<SimilarViewedProduct> similarViewedProductList = this.SimilarViewedProduct;
+            foreach (SimilarViewedProduct similarViewedProduct in similarViewedProductList) {
+                xml.Append("<SimilarViewedProduct>");
+                xml.Append(similarViewedProduct.ToXMLFragment());
+                xml.Append("</SimilarViewedProduct>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookup.cs
new file mode 100644
index 0000000..09572ef
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookup.cs
@@ -0,0 +1,139 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarityLookup
+    {
+    
+        private  List<SimilarityLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<SimilarityLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<SimilarityLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookup WithRequest(params SimilarityLookupRequest[] list)
+        {
+            foreach (SimilarityLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "SimilarityLookup");
+            List<SimilarityLookupRequest> requestList = Request;
+            foreach (SimilarityLookupRequest request in requestList) 
+            {
+                if (request.IsSetCondition()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Condition", request.Condition.ToString());
+                }
+                if (request.IsSetDeliveryMethod()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "DeliveryMethod", request.DeliveryMethod.ToString());
+                }
+                List<String> itemIdList  =  request.ItemId;
+                foreach  (String itemId in itemIdList)
+                { 
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ItemId" + "."  + (itemIdList.IndexOf(itemId) + 1), itemId);
+                }	
+                if (request.IsSetISPUPostalCode()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ISPUPostalCode", request.ISPUPostalCode);
+                }
+                if (request.IsSetMerchantId()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "MerchantId", request.MerchantId);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                if (request.IsSetReviewSort()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ReviewSort", request.ReviewSort);
+                }
+                if (request.IsSetSimilarityType()) 
+                {
+                    parameters.Add("SimilarityLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "SimilarityType", request.SimilarityType.ToString());
+                }
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupRequest.cs
new file mode 100644
index 0000000..6092dae
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupRequest.cs
@@ -0,0 +1,458 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarityLookupRequest
+    {
+    
+        private Condition? conditionField;
+
+        private DeliveryMethod? deliveryMethodField;
+
+        private List<String> itemIdField;
+
+        private String ISPUPostalCodeField;
+
+        private String merchantIdField;
+
+        private List<String> responseGroupField;
+
+        private String reviewSortField;
+
+        private String similarityTypeField;
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public Condition Condition
+        {
+            get { return this.conditionField.GetValueOrDefault() ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithCondition(Condition condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return this.conditionField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DeliveryMethod property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DeliveryMethod")]
+        public DeliveryMethod DeliveryMethod
+        {
+            get { return this.deliveryMethodField.GetValueOrDefault() ; }
+            set { this.deliveryMethodField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DeliveryMethod property
+        /// </summary>
+        /// <param name="deliveryMethod">DeliveryMethod property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithDeliveryMethod(DeliveryMethod deliveryMethod)
+        {
+            this.deliveryMethodField = deliveryMethod;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DeliveryMethod property is set
+        /// </summary>
+        /// <returns>true if DeliveryMethod property is set</returns>
+        public Boolean IsSetDeliveryMethod()
+        {
+            return this.deliveryMethodField.HasValue;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ItemId")]
+        public List<String> ItemId
+        {
+            get
+            {
+                if (this.itemIdField == null)
+                {
+                    this.itemIdField = new List<String>();
+                }
+                return this.itemIdField;
+            }
+            set { this.itemIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ItemId property
+        /// </summary>
+        /// <param name="list">ItemId property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithItemId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ItemId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ItemId property is set
+        /// </summary>
+        /// <returns>true if ItemId property is set</returns>
+        public Boolean IsSetItemId()
+        {
+            return (ItemId.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ISPUPostalCode property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ISPUPostalCode")]
+        public String ISPUPostalCode
+        {
+            get { return this.ISPUPostalCodeField ; }
+            set { this.ISPUPostalCodeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ISPUPostalCode property
+        /// </summary>
+        /// <param name="ISPUPostalCode">ISPUPostalCode property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithISPUPostalCode(String ISPUPostalCode)
+        {
+            this.ISPUPostalCodeField = ISPUPostalCode;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ISPUPostalCode property is set
+        /// </summary>
+        /// <returns>true if ISPUPostalCode property is set</returns>
+        public Boolean IsSetISPUPostalCode()
+        {
+            return  this.ISPUPostalCodeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the MerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "MerchantId")]
+        public String MerchantId
+        {
+            get { return this.merchantIdField ; }
+            set { this.merchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the MerchantId property
+        /// </summary>
+        /// <param name="merchantId">MerchantId property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithMerchantId(String merchantId)
+        {
+            this.merchantIdField = merchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if MerchantId property is set
+        /// </summary>
+        /// <returns>true if MerchantId property is set</returns>
+        public Boolean IsSetMerchantId()
+        {
+            return  this.merchantIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ReviewSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ReviewSort")]
+        public String ReviewSort
+        {
+            get { return this.reviewSortField ; }
+            set { this.reviewSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ReviewSort property
+        /// </summary>
+        /// <param name="reviewSort">ReviewSort property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithReviewSort(String reviewSort)
+        {
+            this.reviewSortField = reviewSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ReviewSort property is set
+        /// </summary>
+        /// <returns>true if ReviewSort property is set</returns>
+        public Boolean IsSetReviewSort()
+        {
+            return  this.reviewSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SimilarityType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SimilarityType")]
+        public String SimilarityType
+        {
+            get { return this.similarityTypeField ; }
+            set { this.similarityTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SimilarityType property
+        /// </summary>
+        /// <param name="similarityType">SimilarityType property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupRequest WithSimilarityType(String similarityType)
+        {
+            this.similarityTypeField = similarityType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SimilarityType property is set
+        /// </summary>
+        /// <returns>true if SimilarityType property is set</returns>
+        public Boolean IsSetSimilarityType()
+        {
+            return this.similarityTypeField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(this.Condition);
+                xml.Append("</Condition>");
+            }
+            if (IsSetDeliveryMethod()) {
+                xml.Append("<DeliveryMethod>");
+                xml.Append(this.DeliveryMethod);
+                xml.Append("</DeliveryMethod>");
+            }
+            List<String> itemIdList  =  this.ItemId;
+            foreach (String itemId in itemIdList) { 
+                xml.Append("<ItemId>");
+                xml.Append(EscapeXML(itemId));
+                xml.Append("</ItemId>");
+            }	
+            if (IsSetISPUPostalCode()) {
+                xml.Append("<ISPUPostalCode>");
+                xml.Append(EscapeXML(this.ISPUPostalCode));
+                xml.Append("</ISPUPostalCode>");
+            }
+            if (IsSetMerchantId()) {
+                xml.Append("<MerchantId>");
+                xml.Append(EscapeXML(this.MerchantId));
+                xml.Append("</MerchantId>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            if (IsSetReviewSort()) {
+                xml.Append("<ReviewSort>");
+                xml.Append(EscapeXML(this.ReviewSort));
+                xml.Append("</ReviewSort>");
+            }
+            if (IsSetSimilarityType()) {
+                xml.Append("<SimilarityType>");
+                xml.Append(this.SimilarityType);
+                xml.Append("</SimilarityType>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupResponse.cs
new file mode 100644
index 0000000..b4e6b19
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/SimilarityLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class SimilarityLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Items> itemsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Items property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Items")]
+        public List<Items> Items
+        {
+            get
+            {
+                if (this.itemsField == null)
+                {
+                    this.itemsField = new List<Items>();
+                }
+                return this.itemsField;
+            }
+            set { this.itemsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Items property
+        /// </summary>
+        /// <param name="list">Items property</param>
+        /// <returns>this instance</returns>
+        public SimilarityLookupResponse WithItems(params Items[] list)
+        {
+            foreach (Items item in list)
+            {
+                Items.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Items property is set
+        /// </summary>
+        /// <returns>true if Items property is set</returns>
+        public Boolean IsSetItems()
+        {
+            return (Items.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<SimilarityLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Items> itemsList = this.Items;
+            foreach (Items items in itemsList) {
+                xml.Append("<Items>");
+                xml.Append(items.ToXMLFragment());
+                xml.Append("</Items>");
+            }
+            xml.Append("</SimilarityLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/StringWithUnits.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/StringWithUnits.cs
new file mode 100644
index 0000000..a04aeb2
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/StringWithUnits.cs
@@ -0,0 +1,165 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class StringWithUnits
+    {
+    
+        private  String unitsField;
+        private  String valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Units property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Units")]
+        public String Units
+        {
+            get { return this.unitsField ; }
+            set { this.unitsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Units property
+        /// </summary>
+        /// <param name="units">Units property</param>
+        /// <returns>this instance</returns>
+        public StringWithUnits WithUnits(String units)
+        {
+            this.unitsField = units;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Units property is set
+        /// </summary>
+        /// <returns>true if Units property is set</returns>
+        public Boolean IsSetUnits()
+        {
+            return this.unitsField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlTextAttribute()]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public StringWithUnits WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return this.valueField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Subjects.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Subjects.cs
new file mode 100644
index 0000000..5be99a1
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Subjects.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Subjects
+    {
+    
+        private List<String> subjectField;
+
+
+        /// <summary>
+        /// Gets and sets the Subject property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Subject")]
+        public List<String> Subject
+        {
+            get
+            {
+                if (this.subjectField == null)
+                {
+                    this.subjectField = new List<String>();
+                }
+                return this.subjectField;
+            }
+            set { this.subjectField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Subject property
+        /// </summary>
+        /// <param name="list">Subject property</param>
+        /// <returns>this instance</returns>
+        public Subjects WithSubject(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                Subject.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of Subject property is set
+        /// </summary>
+        /// <returns>true if Subject property is set</returns>
+        public Boolean IsSetSubject()
+        {
+            return (Subject.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> subjectList  =  this.Subject;
+            foreach (String subject in subjectList) { 
+                xml.Append("<Subject>");
+                xml.Append(EscapeXML(subject));
+                xml.Append("</Subject>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tag.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tag.cs
new file mode 100644
index 0000000..6ccbc8a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tag.cs
@@ -0,0 +1,499 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Tag
+    {
+    
+        private String nameField;
+
+        private String tagTypeField;
+
+        private String distinctItemsField;
+
+        private String distinctUsersField;
+
+        private String totalUsagesField;
+
+        private  Tagging firstTaggingField;
+        private  Tagging lastTaggingField;
+        private  List<TaggedItems> taggedItemsField;
+
+        private  List<TaggedListmaniaLists> taggedListmaniaListsField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Tag WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagType property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagType")]
+        public String TagType
+        {
+            get { return this.tagTypeField ; }
+            set { this.tagTypeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagType property
+        /// </summary>
+        /// <param name="tagType">TagType property</param>
+        /// <returns>this instance</returns>
+        public Tag WithTagType(String tagType)
+        {
+            this.tagTypeField = tagType;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagType property is set
+        /// </summary>
+        /// <returns>true if TagType property is set</returns>
+        public Boolean IsSetTagType()
+        {
+            return this.tagTypeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DistinctItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctItems")]
+        public String DistinctItems
+        {
+            get { return this.distinctItemsField ; }
+            set { this.distinctItemsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctItems property
+        /// </summary>
+        /// <param name="distinctItems">DistinctItems property</param>
+        /// <returns>this instance</returns>
+        public Tag WithDistinctItems(String distinctItems)
+        {
+            this.distinctItemsField = distinctItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctItems property is set
+        /// </summary>
+        /// <returns>true if DistinctItems property is set</returns>
+        public Boolean IsSetDistinctItems()
+        {
+            return  this.distinctItemsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DistinctUsers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctUsers")]
+        public String DistinctUsers
+        {
+            get { return this.distinctUsersField ; }
+            set { this.distinctUsersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctUsers property
+        /// </summary>
+        /// <param name="distinctUsers">DistinctUsers property</param>
+        /// <returns>this instance</returns>
+        public Tag WithDistinctUsers(String distinctUsers)
+        {
+            this.distinctUsersField = distinctUsers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctUsers property is set
+        /// </summary>
+        /// <returns>true if DistinctUsers property is set</returns>
+        public Boolean IsSetDistinctUsers()
+        {
+            return  this.distinctUsersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUsages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUsages")]
+        public String TotalUsages
+        {
+            get { return this.totalUsagesField ; }
+            set { this.totalUsagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUsages property
+        /// </summary>
+        /// <param name="totalUsages">TotalUsages property</param>
+        /// <returns>this instance</returns>
+        public Tag WithTotalUsages(String totalUsages)
+        {
+            this.totalUsagesField = totalUsages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUsages property is set
+        /// </summary>
+        /// <returns>true if TotalUsages property is set</returns>
+        public Boolean IsSetTotalUsages()
+        {
+            return  this.totalUsagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstTagging")]
+        public Tagging FirstTagging
+        {
+            get { return this.firstTaggingField ; }
+            set { this.firstTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstTagging property
+        /// </summary>
+        /// <param name="firstTagging">FirstTagging property</param>
+        /// <returns>this instance</returns>
+        public Tag WithFirstTagging(Tagging firstTagging)
+        {
+            this.firstTaggingField = firstTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstTagging property is set
+        /// </summary>
+        /// <returns>true if FirstTagging property is set</returns>
+        public Boolean IsSetFirstTagging()
+        {
+            return this.firstTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LastTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LastTagging")]
+        public Tagging LastTagging
+        {
+            get { return this.lastTaggingField ; }
+            set { this.lastTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LastTagging property
+        /// </summary>
+        /// <param name="lastTagging">LastTagging property</param>
+        /// <returns>this instance</returns>
+        public Tag WithLastTagging(Tagging lastTagging)
+        {
+            this.lastTaggingField = lastTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LastTagging property is set
+        /// </summary>
+        /// <returns>true if LastTagging property is set</returns>
+        public Boolean IsSetLastTagging()
+        {
+            return this.lastTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TaggedItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TaggedItems")]
+        public List<TaggedItems> TaggedItems
+        {
+            get
+            {
+                if (this.taggedItemsField == null)
+                {
+                    this.taggedItemsField = new List<TaggedItems>();
+                }
+                return this.taggedItemsField;
+            }
+            set { this.taggedItemsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TaggedItems property
+        /// </summary>
+        /// <param name="list">TaggedItems property</param>
+        /// <returns>this instance</returns>
+        public Tag WithTaggedItems(params TaggedItems[] list)
+        {
+            foreach (TaggedItems item in list)
+            {
+                TaggedItems.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if TaggedItems property is set
+        /// </summary>
+        /// <returns>true if TaggedItems property is set</returns>
+        public Boolean IsSetTaggedItems()
+        {
+            return (TaggedItems.Count > 0);
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TaggedListmaniaLists property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TaggedListmaniaLists")]
+        public List<TaggedListmaniaLists> TaggedListmaniaLists
+        {
+            get
+            {
+                if (this.taggedListmaniaListsField == null)
+                {
+                    this.taggedListmaniaListsField = new List<TaggedListmaniaLists>();
+                }
+                return this.taggedListmaniaListsField;
+            }
+            set { this.taggedListmaniaListsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TaggedListmaniaLists property
+        /// </summary>
+        /// <param name="list">TaggedListmaniaLists property</param>
+        /// <returns>this instance</returns>
+        public Tag WithTaggedListmaniaLists(params TaggedListmaniaLists[] list)
+        {
+            foreach (TaggedListmaniaLists item in list)
+            {
+                TaggedListmaniaLists.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if TaggedListmaniaLists property is set
+        /// </summary>
+        /// <returns>true if TaggedListmaniaLists property is set</returns>
+        public Boolean IsSetTaggedListmaniaLists()
+        {
+            return (TaggedListmaniaLists.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetTagType()) {
+                xml.Append("<TagType>");
+                xml.Append(this.TagType);
+                xml.Append("</TagType>");
+            }
+            if (IsSetDistinctItems()) {
+                xml.Append("<DistinctItems>");
+                xml.Append(EscapeXML(this.DistinctItems));
+                xml.Append("</DistinctItems>");
+            }
+            if (IsSetDistinctUsers()) {
+                xml.Append("<DistinctUsers>");
+                xml.Append(EscapeXML(this.DistinctUsers));
+                xml.Append("</DistinctUsers>");
+            }
+            if (IsSetTotalUsages()) {
+                xml.Append("<TotalUsages>");
+                xml.Append(EscapeXML(this.TotalUsages));
+                xml.Append("</TotalUsages>");
+            }
+            if (IsSetFirstTagging()) {
+                Tagging  firstTagging = this.FirstTagging;
+                xml.Append("<FirstTagging>");
+                xml.Append(firstTagging.ToXMLFragment());
+                xml.Append("</FirstTagging>");
+            } 
+            if (IsSetLastTagging()) {
+                Tagging  lastTagging = this.LastTagging;
+                xml.Append("<LastTagging>");
+                xml.Append(lastTagging.ToXMLFragment());
+                xml.Append("</LastTagging>");
+            } 
+            List<TaggedItems> taggedItemsList = this.TaggedItems;
+            foreach (TaggedItems taggedItems in taggedItemsList) {
+                xml.Append("<TaggedItems>");
+                xml.Append(taggedItems.ToXMLFragment());
+                xml.Append("</TaggedItems>");
+            }
+            List<TaggedListmaniaLists> taggedListmaniaListsList = this.TaggedListmaniaLists;
+            foreach (TaggedListmaniaLists taggedListmaniaLists in taggedListmaniaListsList) {
+                xml.Append("<TaggedListmaniaLists>");
+                xml.Append(taggedListmaniaLists.ToXMLFragment());
+                xml.Append("</TaggedListmaniaLists>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookup.cs
new file mode 100644
index 0000000..0b14b8c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookup.cs
@@ -0,0 +1,131 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TagLookup
+    {
+    
+        private  List<TagLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<TagLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<TagLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public TagLookup WithRequest(params TagLookupRequest[] list)
+        {
+            foreach (TagLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "TagLookup");
+            List<TagLookupRequest> requestList = Request;
+            foreach (TagLookupRequest request in requestList) 
+            {
+                List<String> tagNameList  =  request.TagName;
+                foreach  (String tagName in tagNameList)
+                { 
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagName" + "."  + (tagNameList.IndexOf(tagName) + 1), tagName);
+                }	
+                if (request.IsSetCustomerId()) 
+                {
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "CustomerId", request.CustomerId);
+                }
+                if (request.IsSetTagPage()) 
+                {
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagPage", request.TagPage + "");
+                }
+                if (request.IsSetCount()) 
+                {
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "Count", request.Count + "");
+                }
+                if (request.IsSetTagSort()) 
+                {
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TagSort", request.TagSort);
+                }
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("TagLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupRequest.cs
new file mode 100644
index 0000000..b69a07a
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupRequest.cs
@@ -0,0 +1,372 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TagLookupRequest
+    {
+    
+        private List<String> tagNameField;
+
+        private String customerIdField;
+
+        private Decimal? tagPageField;
+
+        private Decimal? countField;
+
+        private String tagSortField;
+
+        private List<String> responseGroupField;
+
+
+        /// <summary>
+        /// Gets and sets the TagName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagName")]
+        public List<String> TagName
+        {
+            get
+            {
+                if (this.tagNameField == null)
+                {
+                    this.tagNameField = new List<String>();
+                }
+                return this.tagNameField;
+            }
+            set { this.tagNameField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagName property
+        /// </summary>
+        /// <param name="list">TagName property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithTagName(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                TagName.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of TagName property is set
+        /// </summary>
+        /// <returns>true if TagName property is set</returns>
+        public Boolean IsSetTagName()
+        {
+            return (TagName.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the CustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "CustomerId")]
+        public String CustomerId
+        {
+            get { return this.customerIdField ; }
+            set { this.customerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the CustomerId property
+        /// </summary>
+        /// <param name="customerId">CustomerId property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithCustomerId(String customerId)
+        {
+            this.customerIdField = customerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if CustomerId property is set
+        /// </summary>
+        /// <returns>true if CustomerId property is set</returns>
+        public Boolean IsSetCustomerId()
+        {
+            return  this.customerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagPage property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagPage")]
+        public Decimal TagPage
+        {
+            get { return this.tagPageField.GetValueOrDefault() ; }
+            set { this.tagPageField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagPage property
+        /// </summary>
+        /// <param name="tagPage">TagPage property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithTagPage(Decimal tagPage)
+        {
+            this.tagPageField = tagPage;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagPage property is set
+        /// </summary>
+        /// <returns>true if TagPage property is set</returns>
+        public Boolean IsSetTagPage()
+        {
+            return  this.tagPageField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Count property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Count")]
+        public Decimal Count
+        {
+            get { return this.countField.GetValueOrDefault() ; }
+            set { this.countField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Count property
+        /// </summary>
+        /// <param name="count">Count property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithCount(Decimal count)
+        {
+            this.countField = count;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Count property is set
+        /// </summary>
+        /// <returns>true if Count property is set</returns>
+        public Boolean IsSetCount()
+        {
+            return  this.countField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TagSort property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TagSort")]
+        public String TagSort
+        {
+            get { return this.tagSortField ; }
+            set { this.tagSortField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TagSort property
+        /// </summary>
+        /// <param name="tagSort">TagSort property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithTagSort(String tagSort)
+        {
+            this.tagSortField = tagSort;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TagSort property is set
+        /// </summary>
+        /// <returns>true if TagSort property is set</returns>
+        public Boolean IsSetTagSort()
+        {
+            return  this.tagSortField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public TagLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> tagNameList  =  this.TagName;
+            foreach (String tagName in tagNameList) { 
+                xml.Append("<TagName>");
+                xml.Append(EscapeXML(tagName));
+                xml.Append("</TagName>");
+            }	
+            if (IsSetCustomerId()) {
+                xml.Append("<CustomerId>");
+                xml.Append(EscapeXML(this.CustomerId));
+                xml.Append("</CustomerId>");
+            }
+            if (IsSetTagPage()) {
+                xml.Append("<TagPage>");
+                xml.Append(this.TagPage);
+                xml.Append("</TagPage>");
+            }
+            if (IsSetCount()) {
+                xml.Append("<Count>");
+                xml.Append(this.Count);
+                xml.Append("</Count>");
+            }
+            if (IsSetTagSort()) {
+                xml.Append("<TagSort>");
+                xml.Append(EscapeXML(this.TagSort));
+                xml.Append("</TagSort>");
+            }
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupResponse.cs
new file mode 100644
index 0000000..f6e1a83
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TagLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TagLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Tags> tagsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public TagLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Tags property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tags")]
+        public List<Tags> Tags
+        {
+            get
+            {
+                if (this.tagsField == null)
+                {
+                    this.tagsField = new List<Tags>();
+                }
+                return this.tagsField;
+            }
+            set { this.tagsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tags property
+        /// </summary>
+        /// <param name="list">Tags property</param>
+        /// <returns>this instance</returns>
+        public TagLookupResponse WithTags(params Tags[] list)
+        {
+            foreach (Tags item in list)
+            {
+                Tags.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Tags property is set
+        /// </summary>
+        /// <returns>true if Tags property is set</returns>
+        public Boolean IsSetTags()
+        {
+            return (Tags.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<TagLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Tags> tagsList = this.Tags;
+            foreach (Tags tags in tagsList) {
+                xml.Append("<Tags>");
+                xml.Append(tags.ToXMLFragment());
+                xml.Append("</Tags>");
+            }
+            xml.Append("</TagLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedGuides.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedGuides.cs
new file mode 100644
index 0000000..e505653
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedGuides.cs
@@ -0,0 +1,308 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TaggedGuides
+    {
+    
+        private  Guide guideField;
+        private String distinctUsersField;
+
+        private String totalUsagesField;
+
+        private  Tagging firstTaggingField;
+        private  Tagging lastTaggingField;
+
+        /// <summary>
+        /// Gets and sets the Guide property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Guide")]
+        public Guide Guide
+        {
+            get { return this.guideField ; }
+            set { this.guideField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Guide property
+        /// </summary>
+        /// <param name="guide">Guide property</param>
+        /// <returns>this instance</returns>
+        public TaggedGuides WithGuide(Guide guide)
+        {
+            this.guideField = guide;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Guide property is set
+        /// </summary>
+        /// <returns>true if Guide property is set</returns>
+        public Boolean IsSetGuide()
+        {
+            return this.guideField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the DistinctUsers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctUsers")]
+        public String DistinctUsers
+        {
+            get { return this.distinctUsersField ; }
+            set { this.distinctUsersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctUsers property
+        /// </summary>
+        /// <param name="distinctUsers">DistinctUsers property</param>
+        /// <returns>this instance</returns>
+        public TaggedGuides WithDistinctUsers(String distinctUsers)
+        {
+            this.distinctUsersField = distinctUsers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctUsers property is set
+        /// </summary>
+        /// <returns>true if DistinctUsers property is set</returns>
+        public Boolean IsSetDistinctUsers()
+        {
+            return  this.distinctUsersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUsages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUsages")]
+        public String TotalUsages
+        {
+            get { return this.totalUsagesField ; }
+            set { this.totalUsagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUsages property
+        /// </summary>
+        /// <param name="totalUsages">TotalUsages property</param>
+        /// <returns>this instance</returns>
+        public TaggedGuides WithTotalUsages(String totalUsages)
+        {
+            this.totalUsagesField = totalUsages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUsages property is set
+        /// </summary>
+        /// <returns>true if TotalUsages property is set</returns>
+        public Boolean IsSetTotalUsages()
+        {
+            return  this.totalUsagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstTagging")]
+        public Tagging FirstTagging
+        {
+            get { return this.firstTaggingField ; }
+            set { this.firstTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstTagging property
+        /// </summary>
+        /// <param name="firstTagging">FirstTagging property</param>
+        /// <returns>this instance</returns>
+        public TaggedGuides WithFirstTagging(Tagging firstTagging)
+        {
+            this.firstTaggingField = firstTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstTagging property is set
+        /// </summary>
+        /// <returns>true if FirstTagging property is set</returns>
+        public Boolean IsSetFirstTagging()
+        {
+            return this.firstTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LastTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LastTagging")]
+        public Tagging LastTagging
+        {
+            get { return this.lastTaggingField ; }
+            set { this.lastTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LastTagging property
+        /// </summary>
+        /// <param name="lastTagging">LastTagging property</param>
+        /// <returns>this instance</returns>
+        public TaggedGuides WithLastTagging(Tagging lastTagging)
+        {
+            this.lastTaggingField = lastTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LastTagging property is set
+        /// </summary>
+        /// <returns>true if LastTagging property is set</returns>
+        public Boolean IsSetLastTagging()
+        {
+            return this.lastTaggingField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetGuide()) {
+                Guide  guide = this.Guide;
+                xml.Append("<Guide>");
+                xml.Append(guide.ToXMLFragment());
+                xml.Append("</Guide>");
+            } 
+            if (IsSetDistinctUsers()) {
+                xml.Append("<DistinctUsers>");
+                xml.Append(EscapeXML(this.DistinctUsers));
+                xml.Append("</DistinctUsers>");
+            }
+            if (IsSetTotalUsages()) {
+                xml.Append("<TotalUsages>");
+                xml.Append(EscapeXML(this.TotalUsages));
+                xml.Append("</TotalUsages>");
+            }
+            if (IsSetFirstTagging()) {
+                Tagging  firstTagging = this.FirstTagging;
+                xml.Append("<FirstTagging>");
+                xml.Append(firstTagging.ToXMLFragment());
+                xml.Append("</FirstTagging>");
+            } 
+            if (IsSetLastTagging()) {
+                Tagging  lastTagging = this.LastTagging;
+                xml.Append("<LastTagging>");
+                xml.Append(lastTagging.ToXMLFragment());
+                xml.Append("</LastTagging>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedItems.cs
new file mode 100644
index 0000000..6813910
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedItems.cs
@@ -0,0 +1,308 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TaggedItems
+    {
+    
+        private String distinctUsersField;
+
+        private String totalUsagesField;
+
+        private  Tagging firstTaggingField;
+        private  Tagging lastTaggingField;
+        private  Item itemField;
+
+        /// <summary>
+        /// Gets and sets the DistinctUsers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctUsers")]
+        public String DistinctUsers
+        {
+            get { return this.distinctUsersField ; }
+            set { this.distinctUsersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctUsers property
+        /// </summary>
+        /// <param name="distinctUsers">DistinctUsers property</param>
+        /// <returns>this instance</returns>
+        public TaggedItems WithDistinctUsers(String distinctUsers)
+        {
+            this.distinctUsersField = distinctUsers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctUsers property is set
+        /// </summary>
+        /// <returns>true if DistinctUsers property is set</returns>
+        public Boolean IsSetDistinctUsers()
+        {
+            return  this.distinctUsersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUsages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUsages")]
+        public String TotalUsages
+        {
+            get { return this.totalUsagesField ; }
+            set { this.totalUsagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUsages property
+        /// </summary>
+        /// <param name="totalUsages">TotalUsages property</param>
+        /// <returns>this instance</returns>
+        public TaggedItems WithTotalUsages(String totalUsages)
+        {
+            this.totalUsagesField = totalUsages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUsages property is set
+        /// </summary>
+        /// <returns>true if TotalUsages property is set</returns>
+        public Boolean IsSetTotalUsages()
+        {
+            return  this.totalUsagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstTagging")]
+        public Tagging FirstTagging
+        {
+            get { return this.firstTaggingField ; }
+            set { this.firstTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstTagging property
+        /// </summary>
+        /// <param name="firstTagging">FirstTagging property</param>
+        /// <returns>this instance</returns>
+        public TaggedItems WithFirstTagging(Tagging firstTagging)
+        {
+            this.firstTaggingField = firstTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstTagging property is set
+        /// </summary>
+        /// <returns>true if FirstTagging property is set</returns>
+        public Boolean IsSetFirstTagging()
+        {
+            return this.firstTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LastTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LastTagging")]
+        public Tagging LastTagging
+        {
+            get { return this.lastTaggingField ; }
+            set { this.lastTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LastTagging property
+        /// </summary>
+        /// <param name="lastTagging">LastTagging property</param>
+        /// <returns>this instance</returns>
+        public TaggedItems WithLastTagging(Tagging lastTagging)
+        {
+            this.lastTaggingField = lastTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LastTagging property is set
+        /// </summary>
+        /// <returns>true if LastTagging property is set</returns>
+        public Boolean IsSetLastTagging()
+        {
+            return this.lastTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public Item Item
+        {
+            get { return this.itemField ; }
+            set { this.itemField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="item">Item property</param>
+        /// <returns>this instance</returns>
+        public TaggedItems WithItem(Item item)
+        {
+            this.itemField = item;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return this.itemField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetDistinctUsers()) {
+                xml.Append("<DistinctUsers>");
+                xml.Append(EscapeXML(this.DistinctUsers));
+                xml.Append("</DistinctUsers>");
+            }
+            if (IsSetTotalUsages()) {
+                xml.Append("<TotalUsages>");
+                xml.Append(EscapeXML(this.TotalUsages));
+                xml.Append("</TotalUsages>");
+            }
+            if (IsSetFirstTagging()) {
+                Tagging  firstTagging = this.FirstTagging;
+                xml.Append("<FirstTagging>");
+                xml.Append(firstTagging.ToXMLFragment());
+                xml.Append("</FirstTagging>");
+            } 
+            if (IsSetLastTagging()) {
+                Tagging  lastTagging = this.LastTagging;
+                xml.Append("<LastTagging>");
+                xml.Append(lastTagging.ToXMLFragment());
+                xml.Append("</LastTagging>");
+            } 
+            if (IsSetItem()) {
+                Item  item = this.Item;
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedListmaniaLists.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedListmaniaLists.cs
new file mode 100644
index 0000000..aa0558f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TaggedListmaniaLists.cs
@@ -0,0 +1,134 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TaggedListmaniaLists
+    {
+    
+        private  List listField;
+
+        /// <summary>
+        /// Gets and sets the List property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "List")]
+        public List List
+        {
+            get { return this.listField ; }
+            set { this.listField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the List property
+        /// </summary>
+        /// <param name="list">List property</param>
+        /// <returns>this instance</returns>
+        public TaggedListmaniaLists WithList(List list)
+        {
+            this.listField = list;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if List property is set
+        /// </summary>
+        /// <returns>true if List property is set</returns>
+        public Boolean IsSetList()
+        {
+            return this.listField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetList()) {
+                List  list = this.List;
+                xml.Append("<List>");
+                xml.Append(list.ToXMLFragment());
+                xml.Append("</List>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tagging.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tagging.cs
new file mode 100644
index 0000000..c98a561
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tagging.cs
@@ -0,0 +1,262 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Tagging
+    {
+    
+        private String nameField;
+
+        private String entityIdField;
+
+        private String userIdField;
+
+        private String timeField;
+
+
+        /// <summary>
+        /// Gets and sets the Name property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Name")]
+        public String Name
+        {
+            get { return this.nameField ; }
+            set { this.nameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Name property
+        /// </summary>
+        /// <param name="name">Name property</param>
+        /// <returns>this instance</returns>
+        public Tagging WithName(String name)
+        {
+            this.nameField = name;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Name property is set
+        /// </summary>
+        /// <returns>true if Name property is set</returns>
+        public Boolean IsSetName()
+        {
+            return  this.nameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EntityId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EntityId")]
+        public String EntityId
+        {
+            get { return this.entityIdField ; }
+            set { this.entityIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EntityId property
+        /// </summary>
+        /// <param name="entityId">EntityId property</param>
+        /// <returns>this instance</returns>
+        public Tagging WithEntityId(String entityId)
+        {
+            this.entityIdField = entityId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EntityId property is set
+        /// </summary>
+        /// <returns>true if EntityId property is set</returns>
+        public Boolean IsSetEntityId()
+        {
+            return  this.entityIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the UserId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UserId")]
+        public String UserId
+        {
+            get { return this.userIdField ; }
+            set { this.userIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UserId property
+        /// </summary>
+        /// <param name="userId">UserId property</param>
+        /// <returns>this instance</returns>
+        public Tagging WithUserId(String userId)
+        {
+            this.userIdField = userId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UserId property is set
+        /// </summary>
+        /// <returns>true if UserId property is set</returns>
+        public Boolean IsSetUserId()
+        {
+            return  this.userIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Time property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Time")]
+        public String Time
+        {
+            get { return this.timeField ; }
+            set { this.timeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Time property
+        /// </summary>
+        /// <param name="time">Time property</param>
+        /// <returns>this instance</returns>
+        public Tagging WithTime(String time)
+        {
+            this.timeField = time;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Time property is set
+        /// </summary>
+        /// <returns>true if Time property is set</returns>
+        public Boolean IsSetTime()
+        {
+            return  this.timeField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetName()) {
+                xml.Append("<Name>");
+                xml.Append(EscapeXML(this.Name));
+                xml.Append("</Name>");
+            }
+            if (IsSetEntityId()) {
+                xml.Append("<EntityId>");
+                xml.Append(EscapeXML(this.EntityId));
+                xml.Append("</EntityId>");
+            }
+            if (IsSetUserId()) {
+                xml.Append("<UserId>");
+                xml.Append(EscapeXML(this.UserId));
+                xml.Append("</UserId>");
+            }
+            if (IsSetTime()) {
+                xml.Append("<Time>");
+                xml.Append(EscapeXML(this.Time));
+                xml.Append("</Time>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tags.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tags.cs
new file mode 100644
index 0000000..2b4280e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tags.cs
@@ -0,0 +1,403 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Tags
+    {
+    
+        private String distinctTagsField;
+
+        private String distinctItemsField;
+
+        private String distinctUsersField;
+
+        private String totalUsagesField;
+
+        private  Tagging firstTaggingField;
+        private  Tagging lastTaggingField;
+        private  List<Tag> tagField;
+
+
+        /// <summary>
+        /// Gets and sets the DistinctTags property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctTags")]
+        public String DistinctTags
+        {
+            get { return this.distinctTagsField ; }
+            set { this.distinctTagsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctTags property
+        /// </summary>
+        /// <param name="distinctTags">DistinctTags property</param>
+        /// <returns>this instance</returns>
+        public Tags WithDistinctTags(String distinctTags)
+        {
+            this.distinctTagsField = distinctTags;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctTags property is set
+        /// </summary>
+        /// <returns>true if DistinctTags property is set</returns>
+        public Boolean IsSetDistinctTags()
+        {
+            return  this.distinctTagsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DistinctItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctItems")]
+        public String DistinctItems
+        {
+            get { return this.distinctItemsField ; }
+            set { this.distinctItemsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctItems property
+        /// </summary>
+        /// <param name="distinctItems">DistinctItems property</param>
+        /// <returns>this instance</returns>
+        public Tags WithDistinctItems(String distinctItems)
+        {
+            this.distinctItemsField = distinctItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctItems property is set
+        /// </summary>
+        /// <returns>true if DistinctItems property is set</returns>
+        public Boolean IsSetDistinctItems()
+        {
+            return  this.distinctItemsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the DistinctUsers property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "DistinctUsers")]
+        public String DistinctUsers
+        {
+            get { return this.distinctUsersField ; }
+            set { this.distinctUsersField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the DistinctUsers property
+        /// </summary>
+        /// <param name="distinctUsers">DistinctUsers property</param>
+        /// <returns>this instance</returns>
+        public Tags WithDistinctUsers(String distinctUsers)
+        {
+            this.distinctUsersField = distinctUsers;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if DistinctUsers property is set
+        /// </summary>
+        /// <returns>true if DistinctUsers property is set</returns>
+        public Boolean IsSetDistinctUsers()
+        {
+            return  this.distinctUsersField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalUsages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalUsages")]
+        public String TotalUsages
+        {
+            get { return this.totalUsagesField ; }
+            set { this.totalUsagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalUsages property
+        /// </summary>
+        /// <param name="totalUsages">TotalUsages property</param>
+        /// <returns>this instance</returns>
+        public Tags WithTotalUsages(String totalUsages)
+        {
+            this.totalUsagesField = totalUsages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalUsages property is set
+        /// </summary>
+        /// <returns>true if TotalUsages property is set</returns>
+        public Boolean IsSetTotalUsages()
+        {
+            return  this.totalUsagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the FirstTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "FirstTagging")]
+        public Tagging FirstTagging
+        {
+            get { return this.firstTaggingField ; }
+            set { this.firstTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the FirstTagging property
+        /// </summary>
+        /// <param name="firstTagging">FirstTagging property</param>
+        /// <returns>this instance</returns>
+        public Tags WithFirstTagging(Tagging firstTagging)
+        {
+            this.firstTaggingField = firstTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if FirstTagging property is set
+        /// </summary>
+        /// <returns>true if FirstTagging property is set</returns>
+        public Boolean IsSetFirstTagging()
+        {
+            return this.firstTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LastTagging property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LastTagging")]
+        public Tagging LastTagging
+        {
+            get { return this.lastTaggingField ; }
+            set { this.lastTaggingField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LastTagging property
+        /// </summary>
+        /// <param name="lastTagging">LastTagging property</param>
+        /// <returns>this instance</returns>
+        public Tags WithLastTagging(Tagging lastTagging)
+        {
+            this.lastTaggingField = lastTagging;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LastTagging property is set
+        /// </summary>
+        /// <returns>true if LastTagging property is set</returns>
+        public Boolean IsSetLastTagging()
+        {
+            return this.lastTaggingField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Tag property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tag")]
+        public List<Tag> Tag
+        {
+            get
+            {
+                if (this.tagField == null)
+                {
+                    this.tagField = new List<Tag>();
+                }
+                return this.tagField;
+            }
+            set { this.tagField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tag property
+        /// </summary>
+        /// <param name="list">Tag property</param>
+        /// <returns>this instance</returns>
+        public Tags WithTag(params Tag[] list)
+        {
+            foreach (Tag item in list)
+            {
+                Tag.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Tag property is set
+        /// </summary>
+        /// <returns>true if Tag property is set</returns>
+        public Boolean IsSetTag()
+        {
+            return (Tag.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetDistinctTags()) {
+                xml.Append("<DistinctTags>");
+                xml.Append(EscapeXML(this.DistinctTags));
+                xml.Append("</DistinctTags>");
+            }
+            if (IsSetDistinctItems()) {
+                xml.Append("<DistinctItems>");
+                xml.Append(EscapeXML(this.DistinctItems));
+                xml.Append("</DistinctItems>");
+            }
+            if (IsSetDistinctUsers()) {
+                xml.Append("<DistinctUsers>");
+                xml.Append(EscapeXML(this.DistinctUsers));
+                xml.Append("</DistinctUsers>");
+            }
+            if (IsSetTotalUsages()) {
+                xml.Append("<TotalUsages>");
+                xml.Append(EscapeXML(this.TotalUsages));
+                xml.Append("</TotalUsages>");
+            }
+            if (IsSetFirstTagging()) {
+                Tagging  firstTagging = this.FirstTagging;
+                xml.Append("<FirstTagging>");
+                xml.Append(firstTagging.ToXMLFragment());
+                xml.Append("</FirstTagging>");
+            } 
+            if (IsSetLastTagging()) {
+                Tagging  lastTagging = this.LastTagging;
+                xml.Append("<LastTagging>");
+                xml.Append(lastTagging.ToXMLFragment());
+                xml.Append("</LastTagging>");
+            } 
+            List<Tag> tagList = this.Tag;
+            foreach (Tag tag in tagList) {
+                xml.Append("<Tag>");
+                xml.Append(tag.ToXMLFragment());
+                xml.Append("</Tag>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSeller.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSeller.cs
new file mode 100644
index 0000000..9af9ed8
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSeller.cs
@@ -0,0 +1,176 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TopSeller
+    {
+    
+        private String ASINField;
+
+        private String titleField;
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public TopSeller WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Title property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Title")]
+        public String Title
+        {
+            get { return this.titleField ; }
+            set { this.titleField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Title property
+        /// </summary>
+        /// <param name="title">Title property</param>
+        /// <returns>this instance</returns>
+        public TopSeller WithTitle(String title)
+        {
+            this.titleField = title;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Title property is set
+        /// </summary>
+        /// <returns>true if Title property is set</returns>
+        public Boolean IsSetTitle()
+        {
+            return  this.titleField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetTitle()) {
+                xml.Append("<Title>");
+                xml.Append(EscapeXML(this.Title));
+                xml.Append("</Title>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSellers.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSellers.cs
new file mode 100644
index 0000000..2d1eea9
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TopSellers.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TopSellers
+    {
+    
+        private  List<TopSeller> topSellerField;
+
+
+        /// <summary>
+        /// Gets and sets the TopSeller property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TopSeller")]
+        public List<TopSeller> TopSeller
+        {
+            get
+            {
+                if (this.topSellerField == null)
+                {
+                    this.topSellerField = new List<TopSeller>();
+                }
+                return this.topSellerField;
+            }
+            set { this.topSellerField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TopSeller property
+        /// </summary>
+        /// <param name="list">TopSeller property</param>
+        /// <returns>this instance</returns>
+        public TopSellers WithTopSeller(params TopSeller[] list)
+        {
+            foreach (TopSeller item in list)
+            {
+                TopSeller.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if TopSeller property is set
+        /// </summary>
+        /// <returns>true if TopSeller property is set</returns>
+        public Boolean IsSetTopSeller()
+        {
+            return (TopSeller.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<TopSeller> topSellerList = this.TopSeller;
+            foreach (TopSeller topSeller in topSellerList) {
+                xml.Append("<TopSeller>");
+                xml.Append(topSeller.ToXMLFragment());
+                xml.Append("</TopSeller>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Track.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Track.cs
new file mode 100644
index 0000000..57769ad
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Track.cs
@@ -0,0 +1,165 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Track
+    {
+    
+        private  String numberField;
+        private  String valueField;
+
+
+        /// <summary>
+        /// Gets and sets  the Number property.
+        /// </summary>
+        [XmlAttributeAttribute(AttributeName = "Number")]
+        public String Number
+        {
+            get { return this.numberField ; }
+            set { this.numberField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Number property
+        /// </summary>
+        /// <param name="number">Number property</param>
+        /// <returns>this instance</returns>
+        public Track WithNumber(String number)
+        {
+            this.numberField = number;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Number property is set
+        /// </summary>
+        /// <returns>true if Number property is set</returns>
+        public Boolean IsSetNumber()
+        {
+            return this.numberField  != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets  the Value property.
+        /// </summary>
+        [XmlTextAttribute()]
+        public String Value
+        {
+            get { return this.valueField ; }
+            set { this.valueField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Value property
+        /// </summary>
+        /// <param name="value">Value property</param>
+        /// <returns>this instance</returns>
+        public Track WithValue(String value)
+        {
+            this.valueField = value;
+            return this;
+        }
+
+
+
+
+        /// <summary>
+        /// Checks if Value property is set
+        /// </summary>
+        /// <returns>true if Value property is set</returns>
+        public Boolean IsSetValue()
+        {
+            return this.valueField  != null;
+
+        }
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tracks.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tracks.cs
new file mode 100644
index 0000000..d3ad0cc
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Tracks.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Tracks
+    {
+    
+        private  List<Disc> discField;
+
+
+        /// <summary>
+        /// Gets and sets the Disc property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Disc")]
+        public List<Disc> Disc
+        {
+            get
+            {
+                if (this.discField == null)
+                {
+                    this.discField = new List<Disc>();
+                }
+                return this.discField;
+            }
+            set { this.discField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Disc property
+        /// </summary>
+        /// <param name="list">Disc property</param>
+        /// <returns>this instance</returns>
+        public Tracks WithDisc(params Disc[] list)
+        {
+            foreach (Disc item in list)
+            {
+                Disc.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Disc property is set
+        /// </summary>
+        /// <returns>true if Disc property is set</returns>
+        public Boolean IsSetDisc()
+        {
+            return (Disc.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Disc> discList = this.Disc;
+            foreach (Disc disc in discList) {
+                xml.Append("<Disc Number=" + "\"" +  disc.Number  + "\"" +  ">");
+                xml.Append(disc.ToXMLFragment());
+                xml.Append("</Disc>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transaction.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transaction.cs
new file mode 100644
index 0000000..c30cf29
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transaction.cs
@@ -0,0 +1,566 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Transaction
+    {
+    
+        private String transactionIdField;
+
+        private String sellerIdField;
+
+        private String conditionField;
+
+        private String transactionDateField;
+
+        private String transactionDateEpochField;
+
+        private String sellerNameField;
+
+        private String payingCustomerIdField;
+
+        private String orderingCustomerIdField;
+
+        private  TransactionTotals totalsField;
+        private  TransactionItems transactionItemsField;
+        private  TransactionShipments shipmentsField;
+
+        /// <summary>
+        /// Gets and sets the TransactionId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionId")]
+        public String TransactionId
+        {
+            get { return this.transactionIdField ; }
+            set { this.transactionIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionId property
+        /// </summary>
+        /// <param name="transactionId">TransactionId property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithTransactionId(String transactionId)
+        {
+            this.transactionIdField = transactionId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TransactionId property is set
+        /// </summary>
+        /// <returns>true if TransactionId property is set</returns>
+        public Boolean IsSetTransactionId()
+        {
+            return  this.transactionIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerId")]
+        public String SellerId
+        {
+            get { return this.sellerIdField ; }
+            set { this.sellerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerId property
+        /// </summary>
+        /// <param name="sellerId">SellerId property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithSellerId(String sellerId)
+        {
+            this.sellerIdField = sellerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerId property is set
+        /// </summary>
+        /// <returns>true if SellerId property is set</returns>
+        public Boolean IsSetSellerId()
+        {
+            return  this.sellerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Condition property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Condition")]
+        public String Condition
+        {
+            get { return this.conditionField ; }
+            set { this.conditionField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Condition property
+        /// </summary>
+        /// <param name="condition">Condition property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithCondition(String condition)
+        {
+            this.conditionField = condition;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Condition property is set
+        /// </summary>
+        /// <returns>true if Condition property is set</returns>
+        public Boolean IsSetCondition()
+        {
+            return  this.conditionField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TransactionDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionDate")]
+        public String TransactionDate
+        {
+            get { return this.transactionDateField ; }
+            set { this.transactionDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionDate property
+        /// </summary>
+        /// <param name="transactionDate">TransactionDate property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithTransactionDate(String transactionDate)
+        {
+            this.transactionDateField = transactionDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TransactionDate property is set
+        /// </summary>
+        /// <returns>true if TransactionDate property is set</returns>
+        public Boolean IsSetTransactionDate()
+        {
+            return  this.transactionDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TransactionDateEpoch property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionDateEpoch")]
+        public String TransactionDateEpoch
+        {
+            get { return this.transactionDateEpochField ; }
+            set { this.transactionDateEpochField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionDateEpoch property
+        /// </summary>
+        /// <param name="transactionDateEpoch">TransactionDateEpoch property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithTransactionDateEpoch(String transactionDateEpoch)
+        {
+            this.transactionDateEpochField = transactionDateEpoch;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TransactionDateEpoch property is set
+        /// </summary>
+        /// <returns>true if TransactionDateEpoch property is set</returns>
+        public Boolean IsSetTransactionDateEpoch()
+        {
+            return  this.transactionDateEpochField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the SellerName property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SellerName")]
+        public String SellerName
+        {
+            get { return this.sellerNameField ; }
+            set { this.sellerNameField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SellerName property
+        /// </summary>
+        /// <param name="sellerName">SellerName property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithSellerName(String sellerName)
+        {
+            this.sellerNameField = sellerName;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SellerName property is set
+        /// </summary>
+        /// <returns>true if SellerName property is set</returns>
+        public Boolean IsSetSellerName()
+        {
+            return  this.sellerNameField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the PayingCustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "PayingCustomerId")]
+        public String PayingCustomerId
+        {
+            get { return this.payingCustomerIdField ; }
+            set { this.payingCustomerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the PayingCustomerId property
+        /// </summary>
+        /// <param name="payingCustomerId">PayingCustomerId property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithPayingCustomerId(String payingCustomerId)
+        {
+            this.payingCustomerIdField = payingCustomerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if PayingCustomerId property is set
+        /// </summary>
+        /// <returns>true if PayingCustomerId property is set</returns>
+        public Boolean IsSetPayingCustomerId()
+        {
+            return  this.payingCustomerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the OrderingCustomerId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OrderingCustomerId")]
+        public String OrderingCustomerId
+        {
+            get { return this.orderingCustomerIdField ; }
+            set { this.orderingCustomerIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OrderingCustomerId property
+        /// </summary>
+        /// <param name="orderingCustomerId">OrderingCustomerId property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithOrderingCustomerId(String orderingCustomerId)
+        {
+            this.orderingCustomerIdField = orderingCustomerId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OrderingCustomerId property is set
+        /// </summary>
+        /// <returns>true if OrderingCustomerId property is set</returns>
+        public Boolean IsSetOrderingCustomerId()
+        {
+            return  this.orderingCustomerIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Totals property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Totals")]
+        public TransactionTotals Totals
+        {
+            get { return this.totalsField ; }
+            set { this.totalsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Totals property
+        /// </summary>
+        /// <param name="totals">Totals property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithTotals(TransactionTotals totals)
+        {
+            this.totalsField = totals;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Totals property is set
+        /// </summary>
+        /// <returns>true if Totals property is set</returns>
+        public Boolean IsSetTotals()
+        {
+            return this.totalsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TransactionItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionItems")]
+        public TransactionItems TransactionItems
+        {
+            get { return this.transactionItemsField ; }
+            set { this.transactionItemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionItems property
+        /// </summary>
+        /// <param name="transactionItems">TransactionItems property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithTransactionItems(TransactionItems transactionItems)
+        {
+            this.transactionItemsField = transactionItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TransactionItems property is set
+        /// </summary>
+        /// <returns>true if TransactionItems property is set</returns>
+        public Boolean IsSetTransactionItems()
+        {
+            return this.transactionItemsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Shipments property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Shipments")]
+        public TransactionShipments Shipments
+        {
+            get { return this.shipmentsField ; }
+            set { this.shipmentsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Shipments property
+        /// </summary>
+        /// <param name="shipments">Shipments property</param>
+        /// <returns>this instance</returns>
+        public Transaction WithShipments(TransactionShipments shipments)
+        {
+            this.shipmentsField = shipments;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Shipments property is set
+        /// </summary>
+        /// <returns>true if Shipments property is set</returns>
+        public Boolean IsSetShipments()
+        {
+            return this.shipmentsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTransactionId()) {
+                xml.Append("<TransactionId>");
+                xml.Append(EscapeXML(this.TransactionId));
+                xml.Append("</TransactionId>");
+            }
+            if (IsSetSellerId()) {
+                xml.Append("<SellerId>");
+                xml.Append(EscapeXML(this.SellerId));
+                xml.Append("</SellerId>");
+            }
+            if (IsSetCondition()) {
+                xml.Append("<Condition>");
+                xml.Append(EscapeXML(this.Condition));
+                xml.Append("</Condition>");
+            }
+            if (IsSetTransactionDate()) {
+                xml.Append("<TransactionDate>");
+                xml.Append(EscapeXML(this.TransactionDate));
+                xml.Append("</TransactionDate>");
+            }
+            if (IsSetTransactionDateEpoch()) {
+                xml.Append("<TransactionDateEpoch>");
+                xml.Append(EscapeXML(this.TransactionDateEpoch));
+                xml.Append("</TransactionDateEpoch>");
+            }
+            if (IsSetSellerName()) {
+                xml.Append("<SellerName>");
+                xml.Append(EscapeXML(this.SellerName));
+                xml.Append("</SellerName>");
+            }
+            if (IsSetPayingCustomerId()) {
+                xml.Append("<PayingCustomerId>");
+                xml.Append(EscapeXML(this.PayingCustomerId));
+                xml.Append("</PayingCustomerId>");
+            }
+            if (IsSetOrderingCustomerId()) {
+                xml.Append("<OrderingCustomerId>");
+                xml.Append(EscapeXML(this.OrderingCustomerId));
+                xml.Append("</OrderingCustomerId>");
+            }
+            if (IsSetTotals()) {
+                TransactionTotals  totals = this.Totals;
+                xml.Append("<Totals>");
+                xml.Append(totals.ToXMLFragment());
+                xml.Append("</Totals>");
+            } 
+            if (IsSetTransactionItems()) {
+                TransactionItems  transactionItems = this.TransactionItems;
+                xml.Append("<TransactionItems>");
+                xml.Append(transactionItems.ToXMLFragment());
+                xml.Append("</TransactionItems>");
+            } 
+            if (IsSetShipments()) {
+                TransactionShipments  shipments = this.Shipments;
+                xml.Append("<Shipments>");
+                xml.Append(shipments.ToXMLFragment());
+                xml.Append("</Shipments>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItem.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItem.cs
new file mode 100644
index 0000000..de9d618
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItem.cs
@@ -0,0 +1,351 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionItem
+    {
+    
+        private String transactionItemIdField;
+
+        private String quantityField;
+
+        private  Price unitPriceField;
+        private  Price totalPriceField;
+        private String ASINField;
+
+        private  ChildTransactionItems childTransactionItemsField;
+
+        /// <summary>
+        /// Gets and sets the TransactionItemId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionItemId")]
+        public String TransactionItemId
+        {
+            get { return this.transactionItemIdField ; }
+            set { this.transactionItemIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionItemId property
+        /// </summary>
+        /// <param name="transactionItemId">TransactionItemId property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithTransactionItemId(String transactionItemId)
+        {
+            this.transactionItemIdField = transactionItemId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TransactionItemId property is set
+        /// </summary>
+        /// <returns>true if TransactionItemId property is set</returns>
+        public Boolean IsSetTransactionItemId()
+        {
+            return  this.transactionItemIdField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Quantity property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Quantity")]
+        public String Quantity
+        {
+            get { return this.quantityField ; }
+            set { this.quantityField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Quantity property
+        /// </summary>
+        /// <param name="quantity">Quantity property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithQuantity(String quantity)
+        {
+            this.quantityField = quantity;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Quantity property is set
+        /// </summary>
+        /// <returns>true if Quantity property is set</returns>
+        public Boolean IsSetQuantity()
+        {
+            return  this.quantityField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the UnitPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "UnitPrice")]
+        public Price UnitPrice
+        {
+            get { return this.unitPriceField ; }
+            set { this.unitPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the UnitPrice property
+        /// </summary>
+        /// <param name="unitPrice">UnitPrice property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithUnitPrice(Price unitPrice)
+        {
+            this.unitPriceField = unitPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if UnitPrice property is set
+        /// </summary>
+        /// <returns>true if UnitPrice property is set</returns>
+        public Boolean IsSetUnitPrice()
+        {
+            return this.unitPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TotalPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPrice")]
+        public Price TotalPrice
+        {
+            get { return this.totalPriceField ; }
+            set { this.totalPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPrice property
+        /// </summary>
+        /// <param name="totalPrice">TotalPrice property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithTotalPrice(Price totalPrice)
+        {
+            this.totalPriceField = totalPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPrice property is set
+        /// </summary>
+        /// <returns>true if TotalPrice property is set</returns>
+        public Boolean IsSetTotalPrice()
+        {
+            return this.totalPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ASIN property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ASIN")]
+        public String ASIN
+        {
+            get { return this.ASINField ; }
+            set { this.ASINField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ASIN property
+        /// </summary>
+        /// <param name="ASIN">ASIN property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithASIN(String ASIN)
+        {
+            this.ASINField = ASIN;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ASIN property is set
+        /// </summary>
+        /// <returns>true if ASIN property is set</returns>
+        public Boolean IsSetASIN()
+        {
+            return  this.ASINField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the ChildTransactionItems property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ChildTransactionItems")]
+        public ChildTransactionItems ChildTransactionItems
+        {
+            get { return this.childTransactionItemsField ; }
+            set { this.childTransactionItemsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ChildTransactionItems property
+        /// </summary>
+        /// <param name="childTransactionItems">ChildTransactionItems property</param>
+        /// <returns>this instance</returns>
+        public TransactionItem WithChildTransactionItems(ChildTransactionItems childTransactionItems)
+        {
+            this.childTransactionItemsField = childTransactionItems;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ChildTransactionItems property is set
+        /// </summary>
+        /// <returns>true if ChildTransactionItems property is set</returns>
+        public Boolean IsSetChildTransactionItems()
+        {
+            return this.childTransactionItemsField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTransactionItemId()) {
+                xml.Append("<TransactionItemId>");
+                xml.Append(EscapeXML(this.TransactionItemId));
+                xml.Append("</TransactionItemId>");
+            }
+            if (IsSetQuantity()) {
+                xml.Append("<Quantity>");
+                xml.Append(EscapeXML(this.Quantity));
+                xml.Append("</Quantity>");
+            }
+            if (IsSetUnitPrice()) {
+                Price  unitPrice = this.UnitPrice;
+                xml.Append("<UnitPrice>");
+                xml.Append(unitPrice.ToXMLFragment());
+                xml.Append("</UnitPrice>");
+            } 
+            if (IsSetTotalPrice()) {
+                Price  totalPrice = this.TotalPrice;
+                xml.Append("<TotalPrice>");
+                xml.Append(totalPrice.ToXMLFragment());
+                xml.Append("</TotalPrice>");
+            } 
+            if (IsSetASIN()) {
+                xml.Append("<ASIN>");
+                xml.Append(EscapeXML(this.ASIN));
+                xml.Append("</ASIN>");
+            }
+            if (IsSetChildTransactionItems()) {
+                ChildTransactionItems  childTransactionItems = this.ChildTransactionItems;
+                xml.Append("<ChildTransactionItems>");
+                xml.Append(childTransactionItems.ToXMLFragment());
+                xml.Append("</ChildTransactionItems>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItems.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItems.cs
new file mode 100644
index 0000000..2be264f
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionItems.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionItems
+    {
+    
+        private  List<TransactionItem> transactionItemField;
+
+
+        /// <summary>
+        /// Gets and sets the TransactionItem property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionItem")]
+        public List<TransactionItem> TransactionItem
+        {
+            get
+            {
+                if (this.transactionItemField == null)
+                {
+                    this.transactionItemField = new List<TransactionItem>();
+                }
+                return this.transactionItemField;
+            }
+            set { this.transactionItemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionItem property
+        /// </summary>
+        /// <param name="list">TransactionItem property</param>
+        /// <returns>this instance</returns>
+        public TransactionItems WithTransactionItem(params TransactionItem[] list)
+        {
+            foreach (TransactionItem item in list)
+            {
+                TransactionItem.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if TransactionItem property is set
+        /// </summary>
+        /// <returns>true if TransactionItem property is set</returns>
+        public Boolean IsSetTransactionItem()
+        {
+            return (TransactionItem.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<TransactionItem> transactionItemList = this.TransactionItem;
+            foreach (TransactionItem transactionItem in transactionItemList) {
+                xml.Append("<TransactionItem>");
+                xml.Append(transactionItem.ToXMLFragment());
+                xml.Append("</TransactionItem>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookup.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookup.cs
new file mode 100644
index 0000000..913eeae
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookup.cs
@@ -0,0 +1,115 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionLookup
+    {
+    
+        private  List<TransactionLookupRequest> requestField;
+
+
+        /// <summary>
+        /// Gets and sets the Request property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Request")]
+        public List<TransactionLookupRequest> Request
+        {
+            get
+            {
+                if (this.requestField == null)
+                {
+                    this.requestField = new List<TransactionLookupRequest>();
+                }
+                return this.requestField;
+            }
+            set { this.requestField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Request property
+        /// </summary>
+        /// <param name="list">Request property</param>
+        /// <returns>this instance</returns>
+        public TransactionLookup WithRequest(params TransactionLookupRequest[] list)
+        {
+            foreach (TransactionLookupRequest item in list)
+            {
+                Request.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Request property is set
+        /// </summary>
+        /// <returns>true if Request property is set</returns>
+        public Boolean IsSetRequest()
+        {
+            return (Request.Count > 0);
+        }
+
+
+
+
+
+        /// <summary>
+        /// Representation of operation that returns
+        /// Dictionary of AWS Query Parameters
+        /// </summary>
+        public IDictionary<String, String> ToDictionary()
+        {
+            IDictionary<String, String> parameters = new Dictionary<String, String>();
+            parameters.Add("Operation", "TransactionLookup");
+            List<TransactionLookupRequest> requestList = Request;
+            foreach (TransactionLookupRequest request in requestList) 
+            {
+                List<String> responseGroupList  =  request.ResponseGroup;
+                foreach  (String responseGroup in responseGroupList)
+                { 
+                    parameters.Add("TransactionLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "ResponseGroup" + "."  + (responseGroupList.IndexOf(responseGroup) + 1), responseGroup.ToString());
+                }	
+                List<String> transactionIdList  =  request.TransactionId;
+                foreach  (String transactionId in transactionIdList)
+                { 
+                    parameters.Add("TransactionLookup" + "."  + (requestList.IndexOf(request) + 1) + "." + "TransactionId" + "."  + (transactionIdList.IndexOf(transactionId) + 1), transactionId);
+                }	
+
+            }
+            return parameters;
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupRequest.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupRequest.cs
new file mode 100644
index 0000000..a4d5a21
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupRequest.cs
@@ -0,0 +1,200 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionLookupRequest
+    {
+    
+        private List<String> responseGroupField;
+
+        private List<String> transactionIdField;
+
+
+        /// <summary>
+        /// Gets and sets the ResponseGroup property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ResponseGroup")]
+        public List<String> ResponseGroup
+        {
+            get
+            {
+                if (this.responseGroupField == null)
+                {
+                    this.responseGroupField = new List<String>();
+                }
+                return this.responseGroupField;
+            }
+            set { this.responseGroupField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ResponseGroup property
+        /// </summary>
+        /// <param name="list">ResponseGroup property</param>
+        /// <returns>this instance</returns>
+        public TransactionLookupRequest WithResponseGroup(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                ResponseGroup.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of ResponseGroup property is set
+        /// </summary>
+        /// <returns>true if ResponseGroup property is set</returns>
+        public Boolean IsSetResponseGroup()
+        {
+            return (ResponseGroup.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the TransactionId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TransactionId")]
+        public List<String> TransactionId
+        {
+            get
+            {
+                if (this.transactionIdField == null)
+                {
+                    this.transactionIdField = new List<String>();
+                }
+                return this.transactionIdField;
+            }
+            set { this.transactionIdField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TransactionId property
+        /// </summary>
+        /// <param name="list">TransactionId property</param>
+        /// <returns>this instance</returns>
+        public TransactionLookupRequest WithTransactionId(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                TransactionId.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of TransactionId property is set
+        /// </summary>
+        /// <returns>true if TransactionId property is set</returns>
+        public Boolean IsSetTransactionId()
+        {
+            return (TransactionId.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> responseGroupList  =  this.ResponseGroup;
+            foreach (String responseGroup in responseGroupList) { 
+                xml.Append("<ResponseGroup>");
+                xml.Append(responseGroup);
+                xml.Append("</ResponseGroup>");
+            }	
+            List<String> transactionIdList  =  this.TransactionId;
+            foreach (String transactionId in transactionIdList) { 
+                xml.Append("<TransactionId>");
+                xml.Append(EscapeXML(transactionId));
+                xml.Append("</TransactionId>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupResponse.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupResponse.cs
new file mode 100644
index 0000000..14bde7b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionLookupResponse.cs
@@ -0,0 +1,184 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionLookupResponse
+    {
+    
+        private  OperationRequest operationRequestField;
+        private  List<Transactions> transactionsField;
+
+
+        /// <summary>
+        /// Gets and sets the OperationRequest property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "OperationRequest")]
+        public OperationRequest OperationRequest
+        {
+            get { return this.operationRequestField ; }
+            set { this.operationRequestField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the OperationRequest property
+        /// </summary>
+        /// <param name="operationRequest">OperationRequest property</param>
+        /// <returns>this instance</returns>
+        public TransactionLookupResponse WithOperationRequest(OperationRequest operationRequest)
+        {
+            this.operationRequestField = operationRequest;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if OperationRequest property is set
+        /// </summary>
+        /// <returns>true if OperationRequest property is set</returns>
+        public Boolean IsSetOperationRequest()
+        {
+            return this.operationRequestField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Transactions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Transactions")]
+        public List<Transactions> Transactions
+        {
+            get
+            {
+                if (this.transactionsField == null)
+                {
+                    this.transactionsField = new List<Transactions>();
+                }
+                return this.transactionsField;
+            }
+            set { this.transactionsField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Transactions property
+        /// </summary>
+        /// <param name="list">Transactions property</param>
+        /// <returns>this instance</returns>
+        public TransactionLookupResponse WithTransactions(params Transactions[] list)
+        {
+            foreach (Transactions item in list)
+            {
+                Transactions.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Transactions property is set
+        /// </summary>
+        /// <returns>true if Transactions property is set</returns>
+        public Boolean IsSetTransactions()
+        {
+            return (Transactions.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML Representation for this object
+        /// </summary>
+        /// <returns>XML String</returns>
+
+        public String ToXML() {
+            StringBuilder xml = new StringBuilder();
+            xml.Append("<TransactionLookupResponse xmlns=\"http://webservices.amazon.com/AWSECommerceService/2007-07-16\";>");
+            if (IsSetOperationRequest()) {
+                OperationRequest  operationRequest = this.OperationRequest;
+                xml.Append("<OperationRequest>");
+                xml.Append(operationRequest.ToXMLFragment());
+                xml.Append("</OperationRequest>");
+            } 
+            List<Transactions> transactionsList = this.Transactions;
+            foreach (Transactions transactions in transactionsList) {
+                xml.Append("<Transactions>");
+                xml.Append(transactions.ToXMLFragment());
+                xml.Append("</Transactions>");
+            }
+            xml.Append("</TransactionLookupResponse>");
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionShipments.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionShipments.cs
new file mode 100644
index 0000000..b9d127e
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionShipments.cs
@@ -0,0 +1,143 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionShipments
+    {
+    
+        private  List<Shipment> shipmentField;
+
+
+        /// <summary>
+        /// Gets and sets the Shipment property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Shipment")]
+        public List<Shipment> Shipment
+        {
+            get
+            {
+                if (this.shipmentField == null)
+                {
+                    this.shipmentField = new List<Shipment>();
+                }
+                return this.shipmentField;
+            }
+            set { this.shipmentField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Shipment property
+        /// </summary>
+        /// <param name="list">Shipment property</param>
+        /// <returns>this instance</returns>
+        public TransactionShipments WithShipment(params Shipment[] list)
+        {
+            foreach (Shipment item in list)
+            {
+                Shipment.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Shipment property is set
+        /// </summary>
+        /// <returns>true if Shipment property is set</returns>
+        public Boolean IsSetShipment()
+        {
+            return (Shipment.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<Shipment> shipmentList = this.Shipment;
+            foreach (Shipment shipment in shipmentList) {
+                xml.Append("<Shipment>");
+                xml.Append(shipment.ToXMLFragment());
+                xml.Append("</Shipment>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionTotals.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionTotals.cs
new file mode 100644
index 0000000..4ba7889
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/TransactionTotals.cs
@@ -0,0 +1,310 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class TransactionTotals
+    {
+    
+        private  Price totalField;
+        private  Price subtotalField;
+        private  Price taxField;
+        private  Price shippingChargeField;
+        private  Price promotionField;
+
+        /// <summary>
+        /// Gets and sets the Total property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Total")]
+        public Price Total
+        {
+            get { return this.totalField ; }
+            set { this.totalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Total property
+        /// </summary>
+        /// <param name="total">Total property</param>
+        /// <returns>this instance</returns>
+        public TransactionTotals WithTotal(Price total)
+        {
+            this.totalField = total;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Total property is set
+        /// </summary>
+        /// <returns>true if Total property is set</returns>
+        public Boolean IsSetTotal()
+        {
+            return this.totalField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Subtotal property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Subtotal")]
+        public Price Subtotal
+        {
+            get { return this.subtotalField ; }
+            set { this.subtotalField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Subtotal property
+        /// </summary>
+        /// <param name="subtotal">Subtotal property</param>
+        /// <returns>this instance</returns>
+        public TransactionTotals WithSubtotal(Price subtotal)
+        {
+            this.subtotalField = subtotal;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Subtotal property is set
+        /// </summary>
+        /// <returns>true if Subtotal property is set</returns>
+        public Boolean IsSetSubtotal()
+        {
+            return this.subtotalField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Tax property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Tax")]
+        public Price Tax
+        {
+            get { return this.taxField ; }
+            set { this.taxField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Tax property
+        /// </summary>
+        /// <param name="tax">Tax property</param>
+        /// <returns>this instance</returns>
+        public TransactionTotals WithTax(Price tax)
+        {
+            this.taxField = tax;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Tax property is set
+        /// </summary>
+        /// <returns>true if Tax property is set</returns>
+        public Boolean IsSetTax()
+        {
+            return this.taxField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the ShippingCharge property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "ShippingCharge")]
+        public Price ShippingCharge
+        {
+            get { return this.shippingChargeField ; }
+            set { this.shippingChargeField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the ShippingCharge property
+        /// </summary>
+        /// <param name="shippingCharge">ShippingCharge property</param>
+        /// <returns>this instance</returns>
+        public TransactionTotals WithShippingCharge(Price shippingCharge)
+        {
+            this.shippingChargeField = shippingCharge;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if ShippingCharge property is set
+        /// </summary>
+        /// <returns>true if ShippingCharge property is set</returns>
+        public Boolean IsSetShippingCharge()
+        {
+            return this.shippingChargeField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Promotion property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Promotion")]
+        public Price Promotion
+        {
+            get { return this.promotionField ; }
+            set { this.promotionField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Promotion property
+        /// </summary>
+        /// <param name="promotion">Promotion property</param>
+        /// <returns>this instance</returns>
+        public TransactionTotals WithPromotion(Price promotion)
+        {
+            this.promotionField = promotion;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Promotion property is set
+        /// </summary>
+        /// <returns>true if Promotion property is set</returns>
+        public Boolean IsSetPromotion()
+        {
+            return this.promotionField != null;
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotal()) {
+                Price  total = this.Total;
+                xml.Append("<Total>");
+                xml.Append(total.ToXMLFragment());
+                xml.Append("</Total>");
+            } 
+            if (IsSetSubtotal()) {
+                Price  subtotal = this.Subtotal;
+                xml.Append("<Subtotal>");
+                xml.Append(subtotal.ToXMLFragment());
+                xml.Append("</Subtotal>");
+            } 
+            if (IsSetTax()) {
+                Price  tax = this.Tax;
+                xml.Append("<Tax>");
+                xml.Append(tax.ToXMLFragment());
+                xml.Append("</Tax>");
+            } 
+            if (IsSetShippingCharge()) {
+                Price  shippingCharge = this.ShippingCharge;
+                xml.Append("<ShippingCharge>");
+                xml.Append(shippingCharge.ToXMLFragment());
+                xml.Append("</ShippingCharge>");
+            } 
+            if (IsSetPromotion()) {
+                Price  promotion = this.Promotion;
+                xml.Append("<Promotion>");
+                xml.Append(promotion.ToXMLFragment());
+                xml.Append("</Promotion>");
+            } 
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transactions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transactions.cs
new file mode 100644
index 0000000..fdca0bd
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Transactions.cs
@@ -0,0 +1,229 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Transactions
+    {
+    
+        private Decimal? totalResultsField;
+
+        private Decimal? totalPagesField;
+
+        private  List<Transaction> transactionField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalResults property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalResults")]
+        public Decimal TotalResults
+        {
+            get { return this.totalResultsField.GetValueOrDefault() ; }
+            set { this.totalResultsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalResults property
+        /// </summary>
+        /// <param name="totalResults">TotalResults property</param>
+        /// <returns>this instance</returns>
+        public Transactions WithTotalResults(Decimal totalResults)
+        {
+            this.totalResultsField = totalResults;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalResults property is set
+        /// </summary>
+        /// <returns>true if TotalResults property is set</returns>
+        public Boolean IsSetTotalResults()
+        {
+            return  this.totalResultsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalPages")]
+        public Decimal TotalPages
+        {
+            get { return this.totalPagesField.GetValueOrDefault() ; }
+            set { this.totalPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalPages property
+        /// </summary>
+        /// <param name="totalPages">TotalPages property</param>
+        /// <returns>this instance</returns>
+        public Transactions WithTotalPages(Decimal totalPages)
+        {
+            this.totalPagesField = totalPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalPages property is set
+        /// </summary>
+        /// <returns>true if TotalPages property is set</returns>
+        public Boolean IsSetTotalPages()
+        {
+            return  this.totalPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the Transaction property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Transaction")]
+        public List<Transaction> Transaction
+        {
+            get
+            {
+                if (this.transactionField == null)
+                {
+                    this.transactionField = new List<Transaction>();
+                }
+                return this.transactionField;
+            }
+            set { this.transactionField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Transaction property
+        /// </summary>
+        /// <param name="list">Transaction property</param>
+        /// <returns>this instance</returns>
+        public Transactions WithTransaction(params Transaction[] list)
+        {
+            foreach (Transaction item in list)
+            {
+                Transaction.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Transaction property is set
+        /// </summary>
+        /// <returns>true if Transaction property is set</returns>
+        public Boolean IsSetTransaction()
+        {
+            return (Transaction.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalResults()) {
+                xml.Append("<TotalResults>");
+                xml.Append(this.TotalResults);
+                xml.Append("</TotalResults>");
+            }
+            if (IsSetTotalPages()) {
+                xml.Append("<TotalPages>");
+                xml.Append(this.TotalPages);
+                xml.Append("</TotalPages>");
+            }
+            List<Transaction> transactionList = this.Transaction;
+            foreach (Transaction transaction in transactionList) {
+                xml.Append("<Transaction>");
+                xml.Append(transaction.ToXMLFragment());
+                xml.Append("</Transaction>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationDimensions.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationDimensions.cs
new file mode 100644
index 0000000..925618b
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationDimensions.cs
@@ -0,0 +1,145 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class VariationDimensions
+    {
+    
+        private List<String> variationDimensionField;
+
+
+        /// <summary>
+        /// Gets and sets the VariationDimension property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDimension")]
+        public List<String> VariationDimension
+        {
+            get
+            {
+                if (this.variationDimensionField == null)
+                {
+                    this.variationDimensionField = new List<String>();
+                }
+                return this.variationDimensionField;
+            }
+            set { this.variationDimensionField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDimension property
+        /// </summary>
+        /// <param name="list">VariationDimension property</param>
+        /// <returns>this instance</returns>
+        public VariationDimensions WithVariationDimension(params String[] list)
+        {
+            foreach (String item in list)
+            {
+                VariationDimension.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks of VariationDimension property is set
+        /// </summary>
+        /// <returns>true if VariationDimension property is set</returns>
+        public Boolean IsSetVariationDimension()
+        {
+            return (VariationDimension.Count > 0);
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            List<String> variationDimensionList  =  this.VariationDimension;
+            foreach (String variationDimension in variationDimensionList) { 
+                xml.Append("<VariationDimension>");
+                xml.Append(EscapeXML(variationDimension));
+                xml.Append("</VariationDimension>");
+            }	
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationSummary.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationSummary.cs
new file mode 100644
index 0000000..3430daf
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VariationSummary.cs
@@ -0,0 +1,309 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class VariationSummary
+    {
+    
+        private  Price lowestPriceField;
+        private  Price highestPriceField;
+        private  Price lowestSalePriceField;
+        private  Price highestSalePriceField;
+        private String singleMerchantIdField;
+
+
+        /// <summary>
+        /// Gets and sets the LowestPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestPrice")]
+        public Price LowestPrice
+        {
+            get { return this.lowestPriceField ; }
+            set { this.lowestPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestPrice property
+        /// </summary>
+        /// <param name="lowestPrice">LowestPrice property</param>
+        /// <returns>this instance</returns>
+        public VariationSummary WithLowestPrice(Price lowestPrice)
+        {
+            this.lowestPriceField = lowestPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestPrice property is set
+        /// </summary>
+        /// <returns>true if LowestPrice property is set</returns>
+        public Boolean IsSetLowestPrice()
+        {
+            return this.lowestPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HighestPrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HighestPrice")]
+        public Price HighestPrice
+        {
+            get { return this.highestPriceField ; }
+            set { this.highestPriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HighestPrice property
+        /// </summary>
+        /// <param name="highestPrice">HighestPrice property</param>
+        /// <returns>this instance</returns>
+        public VariationSummary WithHighestPrice(Price highestPrice)
+        {
+            this.highestPriceField = highestPrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HighestPrice property is set
+        /// </summary>
+        /// <returns>true if HighestPrice property is set</returns>
+        public Boolean IsSetHighestPrice()
+        {
+            return this.highestPriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the LowestSalePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "LowestSalePrice")]
+        public Price LowestSalePrice
+        {
+            get { return this.lowestSalePriceField ; }
+            set { this.lowestSalePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the LowestSalePrice property
+        /// </summary>
+        /// <param name="lowestSalePrice">LowestSalePrice property</param>
+        /// <returns>this instance</returns>
+        public VariationSummary WithLowestSalePrice(Price lowestSalePrice)
+        {
+            this.lowestSalePriceField = lowestSalePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if LowestSalePrice property is set
+        /// </summary>
+        /// <returns>true if LowestSalePrice property is set</returns>
+        public Boolean IsSetLowestSalePrice()
+        {
+            return this.lowestSalePriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the HighestSalePrice property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "HighestSalePrice")]
+        public Price HighestSalePrice
+        {
+            get { return this.highestSalePriceField ; }
+            set { this.highestSalePriceField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the HighestSalePrice property
+        /// </summary>
+        /// <param name="highestSalePrice">HighestSalePrice property</param>
+        /// <returns>this instance</returns>
+        public VariationSummary WithHighestSalePrice(Price highestSalePrice)
+        {
+            this.highestSalePriceField = highestSalePrice;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if HighestSalePrice property is set
+        /// </summary>
+        /// <returns>true if HighestSalePrice property is set</returns>
+        public Boolean IsSetHighestSalePrice()
+        {
+            return this.highestSalePriceField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the SingleMerchantId property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "SingleMerchantId")]
+        public String SingleMerchantId
+        {
+            get { return this.singleMerchantIdField ; }
+            set { this.singleMerchantIdField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the SingleMerchantId property
+        /// </summary>
+        /// <param name="singleMerchantId">SingleMerchantId property</param>
+        /// <returns>this instance</returns>
+        public VariationSummary WithSingleMerchantId(String singleMerchantId)
+        {
+            this.singleMerchantIdField = singleMerchantId;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if SingleMerchantId property is set
+        /// </summary>
+        /// <returns>true if SingleMerchantId property is set</returns>
+        public Boolean IsSetSingleMerchantId()
+        {
+            return  this.singleMerchantIdField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetLowestPrice()) {
+                Price  lowestPrice = this.LowestPrice;
+                xml.Append("<LowestPrice>");
+                xml.Append(lowestPrice.ToXMLFragment());
+                xml.Append("</LowestPrice>");
+            } 
+            if (IsSetHighestPrice()) {
+                Price  highestPrice = this.HighestPrice;
+                xml.Append("<HighestPrice>");
+                xml.Append(highestPrice.ToXMLFragment());
+                xml.Append("</HighestPrice>");
+            } 
+            if (IsSetLowestSalePrice()) {
+                Price  lowestSalePrice = this.LowestSalePrice;
+                xml.Append("<LowestSalePrice>");
+                xml.Append(lowestSalePrice.ToXMLFragment());
+                xml.Append("</LowestSalePrice>");
+            } 
+            if (IsSetHighestSalePrice()) {
+                Price  highestSalePrice = this.HighestSalePrice;
+                xml.Append("<HighestSalePrice>");
+                xml.Append(highestSalePrice.ToXMLFragment());
+                xml.Append("</HighestSalePrice>");
+            } 
+            if (IsSetSingleMerchantId()) {
+                xml.Append("<SingleMerchantId>");
+                xml.Append(EscapeXML(this.SingleMerchantId));
+                xml.Append("</SingleMerchantId>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Variations.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Variations.cs
new file mode 100644
index 0000000..f574d53
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/Variations.cs
@@ -0,0 +1,273 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class Variations
+    {
+    
+        private Decimal? totalVariationsField;
+
+        private Decimal? totalVariationPagesField;
+
+        private  VariationDimensions variationDimensionsField;
+        private  List<Item> itemField;
+
+
+        /// <summary>
+        /// Gets and sets the TotalVariations property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVariations")]
+        public Decimal TotalVariations
+        {
+            get { return this.totalVariationsField.GetValueOrDefault() ; }
+            set { this.totalVariationsField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVariations property
+        /// </summary>
+        /// <param name="totalVariations">TotalVariations property</param>
+        /// <returns>this instance</returns>
+        public Variations WithTotalVariations(Decimal totalVariations)
+        {
+            this.totalVariationsField = totalVariations;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVariations property is set
+        /// </summary>
+        /// <returns>true if TotalVariations property is set</returns>
+        public Boolean IsSetTotalVariations()
+        {
+            return  this.totalVariationsField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the TotalVariationPages property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "TotalVariationPages")]
+        public Decimal TotalVariationPages
+        {
+            get { return this.totalVariationPagesField.GetValueOrDefault() ; }
+            set { this.totalVariationPagesField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the TotalVariationPages property
+        /// </summary>
+        /// <param name="totalVariationPages">TotalVariationPages property</param>
+        /// <returns>this instance</returns>
+        public Variations WithTotalVariationPages(Decimal totalVariationPages)
+        {
+            this.totalVariationPagesField = totalVariationPages;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if TotalVariationPages property is set
+        /// </summary>
+        /// <returns>true if TotalVariationPages property is set</returns>
+        public Boolean IsSetTotalVariationPages()
+        {
+            return  this.totalVariationPagesField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the VariationDimensions property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "VariationDimensions")]
+        public VariationDimensions VariationDimensions
+        {
+            get { return this.variationDimensionsField ; }
+            set { this.variationDimensionsField = value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the VariationDimensions property
+        /// </summary>
+        /// <param name="variationDimensions">VariationDimensions property</param>
+        /// <returns>this instance</returns>
+        public Variations WithVariationDimensions(VariationDimensions variationDimensions)
+        {
+            this.variationDimensionsField = variationDimensions;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if VariationDimensions property is set
+        /// </summary>
+        /// <returns>true if VariationDimensions property is set</returns>
+        public Boolean IsSetVariationDimensions()
+        {
+            return this.variationDimensionsField != null;
+        }
+
+
+
+
+        /// <summary>
+        /// Gets and sets the Item property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Item")]
+        public List<Item> Item
+        {
+            get
+            {
+                if (this.itemField == null)
+                {
+                    this.itemField = new List<Item>();
+                }
+                return this.itemField;
+            }
+            set { this.itemField =  value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Item property
+        /// </summary>
+        /// <param name="list">Item property</param>
+        /// <returns>this instance</returns>
+        public Variations WithItem(params Item[] list)
+        {
+            foreach (Item item in list)
+            {
+                Item.Add(item);
+            }
+            return this;
+        }          
+ 
+
+
+        /// <summary>
+        /// Checks if Item property is set
+        /// </summary>
+        /// <returns>true if Item property is set</returns>
+        public Boolean IsSetItem()
+        {
+            return (Item.Count > 0);
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetTotalVariations()) {
+                xml.Append("<TotalVariations>");
+                xml.Append(this.TotalVariations);
+                xml.Append("</TotalVariations>");
+            }
+            if (IsSetTotalVariationPages()) {
+                xml.Append("<TotalVariationPages>");
+                xml.Append(this.TotalVariationPages);
+                xml.Append("</TotalVariationPages>");
+            }
+            if (IsSetVariationDimensions()) {
+                VariationDimensions  variationDimensions = this.VariationDimensions;
+                xml.Append("<VariationDimensions>");
+                xml.Append(variationDimensions.ToXMLFragment());
+                xml.Append("</VariationDimensions>");
+            } 
+            List<Item> itemList = this.Item;
+            foreach (Item item in itemList) {
+                xml.Append("<Item>");
+                xml.Append(item.ToXMLFragment());
+                xml.Append("</Item>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VendorRebate.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VendorRebate.cs
new file mode 100644
index 0000000..4d3ce93
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Model/VendorRebate.cs
@@ -0,0 +1,219 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Amazon.ECS.Model
+{
+    [XmlTypeAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";)]
+    [XmlRootAttribute(Namespace = "http://webservices.amazon.com/AWSECommerceService/2007-07-16";, IsNullable = false)]
+    public class VendorRebate
+    {
+    
+        private String typeField;
+
+        private String startDateField;
+
+        private String endDateField;
+
+
+        /// <summary>
+        /// Gets and sets the Type property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "Type")]
+        public String Type
+        {
+            get { return this.typeField ; }
+            set { this.typeField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the Type property
+        /// </summary>
+        /// <param name="type">Type property</param>
+        /// <returns>this instance</returns>
+        public VendorRebate WithType(String type)
+        {
+            this.typeField = type;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if Type property is set
+        /// </summary>
+        /// <returns>true if Type property is set</returns>
+        public Boolean IsSetType()
+        {
+            return  this.typeField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the StartDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "StartDate")]
+        public String StartDate
+        {
+            get { return this.startDateField ; }
+            set { this.startDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the StartDate property
+        /// </summary>
+        /// <param name="startDate">StartDate property</param>
+        /// <returns>this instance</returns>
+        public VendorRebate WithStartDate(String startDate)
+        {
+            this.startDateField = startDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if StartDate property is set
+        /// </summary>
+        /// <returns>true if StartDate property is set</returns>
+        public Boolean IsSetStartDate()
+        {
+            return  this.startDateField != null;
+
+        }
+
+
+        /// <summary>
+        /// Gets and sets the EndDate property.
+        /// </summary>
+        [XmlElementAttribute(ElementName = "EndDate")]
+        public String EndDate
+        {
+            get { return this.endDateField ; }
+            set { this.endDateField= value; }
+        }
+
+
+
+        /// <summary>
+        /// Sets the EndDate property
+        /// </summary>
+        /// <param name="endDate">EndDate property</param>
+        /// <returns>this instance</returns>
+        public VendorRebate WithEndDate(String endDate)
+        {
+            this.endDateField = endDate;
+            return this;
+        }
+
+
+
+        /// <summary>
+        /// Checks if EndDate property is set
+        /// </summary>
+        /// <returns>true if EndDate property is set</returns>
+        public Boolean IsSetEndDate()
+        {
+            return  this.endDateField != null;
+
+        }
+
+
+
+
+        /// <summary>
+        /// XML fragment representation of this object
+        /// </summary>
+        /// <returns>XML fragment for this object.</returns>
+        /// <remarks>
+        /// Name for outer tag expected to be set by calling method. 
+        /// This fragment returns inner properties representation only
+        /// </remarks>
+
+
+        protected internal String ToXMLFragment() {
+            StringBuilder xml = new StringBuilder();
+            if (IsSetType()) {
+                xml.Append("<Type>");
+                xml.Append(EscapeXML(this.Type));
+                xml.Append("</Type>");
+            }
+            if (IsSetStartDate()) {
+                xml.Append("<StartDate>");
+                xml.Append(EscapeXML(this.StartDate));
+                xml.Append("</StartDate>");
+            }
+            if (IsSetEndDate()) {
+                xml.Append("<EndDate>");
+                xml.Append(EscapeXML(this.EndDate));
+                xml.Append("</EndDate>");
+            }
+            return xml.ToString();
+        }
+
+        /**
+         * 
+         * Escape XML special characters
+         */
+        private String EscapeXML(String str) {
+            StringBuilder sb = new StringBuilder();
+            foreach (Char c in str)
+            {
+                switch (c) {
+                case '&':
+                    sb.Append("&amp;");
+                    break;
+                case '<':
+                    sb.Append("&lt;");
+                    break;
+                case '>':
+                    sb.Append("&gt;");
+                    break;
+                case '\'':
+                    sb.Append("&#039;");
+                    break;
+                case '"':
+                    sb.Append("&quot;");
+                    break;
+                default:
+                    sb.Append(c);
+                    break;
+                }
+            }
+            return sb.ToString();
+        }
+
+
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Query/AmazonECSQuery.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Query/AmazonECSQuery.cs
new file mode 100644
index 0000000..45c2cf3
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Amazon.ECS/Query/AmazonECSQuery.cs
@@ -0,0 +1,1117 @@
+/******************************************************************************* 
+ *  Copyright 2007 Amazon Technologies, Inc.  
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  
+ *  You may not use this file except in compliance with the License. 
+ *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
+ *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
+ *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
+ *  specific language governing permissions and limitations under the License.
+ * ***************************************************************************** 
+ *    __  _    _  ___ 
+ *   (  )( \/\/ )/ __)
+ *   /__\ \    / \__ \
+ *  (_)(_) \/\/  (___/
+ * 
+ *  Amazon ECS CSharp Library
+ *  API Version: 2007-07-16
+ *  Generated: Thu Aug 02 10:15:38 PDT 2007 
+ * 
+ */
+
+using System;
+using System.Web;
+using System.Net;
+using System.Text;
+using System.IO;
+using System.Text.RegularExpressions;
+using System.Security.Cryptography;
+using System.Globalization;
+using System.Xml.Serialization;
+using System.Collections.Generic;
+using Amazon.ECS.Model;
+using Amazon.ECS;
+
+
+namespace Amazon.ECS.Query
+{
+
+
+   /**
+
+    *
+    * AmazonECSQuery is the HTTP Query implementation of AmazonECS
+    *
+    */
+    public class AmazonECSQuery : AmazonECS
+    {
+
+        private String awsAccessKeyId = null;
+        private String associateTag = null;
+        private AmazonECSConfig config = null;
+
+
+        /// <summary>
+        /// Constructs AmazonECSQuery with AWS Access Key ID and Accociate Tag
+        /// </summary>
+        /// <param name="awsAccessKeyId">AWS Access Key ID</param>
+        /// <param name="associateTag">Accociate Tag</param>
+        public AmazonECSQuery(String awsAccessKeyId, String associateTag)
+            : this(awsAccessKeyId, associateTag, AmazonECSLocale.US)
+        {
+        }
+
+        /// <summary>
+        /// Constructs AmazonECSQuery with AWS Access Key ID,  Associate Tag
+        /// and specific service locale
+        /// </summary>
+        /// <param name="awsAccessKeyId">AWS Access Key ID</param>
+        /// <param name="associateTag">Accociate Tag</param>
+        /// <param name="locale">Locale you wish to invoke the service call at.</param>
+        /// <remarks>
+        /// Supported Locales are: US, UK, DE, FR, CA, JP. Note, not all operations
+        /// supported by all locales. Please refer to Amazon ECS documentation for
+        /// more information
+        /// </remarks>
+        public AmazonECSQuery(String awsAccessKeyId, String associateTag, AmazonECSLocale locale)
+        {
+            this.awsAccessKeyId = awsAccessKeyId;
+            this.associateTag = associateTag;
+            this.config = locale.Config;
+        }
+
+
+        // Public API ------------------------------------------------------------//
+
+        
+        /// <summary>
+        /// Help  Action
+        /// </summary>
+        /// <param name="request">Help  request</param>
+        /// <returns>Help  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The Help operation provides information about ECS operations and
+        /// response groups. For operations, Help lists required and optional
+        /// request parameters, as well as default and optional response groups the
+        /// operation can use. For response groups, Help lists the operations that can
+        /// use the response group as well as the response tags returned by the
+        /// response group in the XML response.
+        /// <p/>
+        /// The Help operation is not often used in customer applications. It can, however, be
+        /// used to help the developer in the following ways:
+        /// <p/>
+        /// <ul>
+        /// <li>Provide contextual help in an interactive development environment (IDE) for developerst</li>
+        /// <li>Automate documentation creation as part of a developer's toolkit. </li>
+        /// </ul>
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Help</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public HelpResponse Help(params HelpRequest [] request)
+        {
+            Help action = new Help();
+            return Invoke<HelpResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Item Search  Action
+        /// </summary>
+        /// <param name="request">Item Search  request</param>
+        /// <returns>Item Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ItemSearch operation returns items that satisfy the search
+        /// criteria, including one or more search indices
+        /// <p/>
+        /// ItemSearch returns up to ten search results at a time. When condition
+        /// equals "All," ItemSearch returns up to three offers per condition (if they exist),
+        /// for example, three new, three used, three refurbished, and three collectible items.
+        /// Or, for example, if there are no collectible or refurbished offers, ItemSearch
+        /// returns three new and three used offers.
+        /// <p/>
+        /// Because there are thousands of items in each search index, ItemSearch requires
+        /// that you specify the value for at least one parameter in addition to a search index.
+        /// The additional parameter value must reference items within the specified search index.
+        /// For example, you might specify a browse node (BrowseNode is an ItemSearch parameter),
+        /// Harry Potter Books, within the Books product category. You would not get results,
+        /// for example, if you specified the search index to be Automotive and the browse node
+        /// to be Harry Potter Books. In this case, the parameter value is not associated with
+        /// the search index value.
+        /// <p/>
+        /// The ItemPage parameter enables you to return a specified page of results. The maximum
+        /// ItemPage number that can be returned is 400. An error is returned if you try to access
+        /// higher numbered pages. If you do not include ItemPage in your request, the first page
+        /// will be returned by default. There can be up to ten items per page.
+        /// <p/>
+        /// ItemSearch is the operation that is used most often in requests. In general,
+        /// when trying to find an item for sale, you use this operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>SearchBins</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ItemSearchResponse ItemSearch(params ItemSearchRequest [] request)
+        {
+            ItemSearch action = new ItemSearch();
+            return Invoke<ItemSearchResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Item Lookup  Action
+        /// </summary>
+        /// <param name="request">Item Lookup  request</param>
+        /// <returns>Item Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given an Item identifier, the ItemLookup operation returns some or all
+        /// of the item attributes, depending on the response group specified in the request.
+        /// By default, ItemLookup returns an item's ASIN, DetailPageURL, Manufacturer,
+        /// ProductGroup, and Title of the item.
+        /// <p/>
+        /// ItemLookup supports many response groups, so you can retrieve many different
+        /// kinds of product information, called item attributes, including product reviews,
+        /// variations, similar products, pricing, availability, images of products, accessories,
+        /// and other information.
+        /// <p/>
+        /// To look up more than one item at a time, separate the item identifiers by commas.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>VariationImages</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ItemLookupResponse ItemLookup(params ItemLookupRequest [] request)
+        {
+            ItemLookup action = new ItemLookup();
+            return Invoke<ItemLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Browse Node Lookup  Action
+        /// </summary>
+        /// <param name="request">Browse Node Lookup  request</param>
+        /// <returns>Browse Node Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a browse node ID, BrowseNodeLookup returns the specified browse node's name, children, and ancestors.
+        /// The names and browse node IDs of the children and ancestor browse nodes are also returned.
+        /// BrowseNodeLookup enables you to traverse the browse node hierarchy to find a browse node.
+        /// As you traverse down the hierarchy, you refine your search and limit the number of items returned.
+        /// For example, you might traverse the following hierarchy: DVD Used DVDs Kids and Family,
+        /// to select out of all the DVDs offered by Amazon only those that are appropriate for family viewing.
+        /// Returning the items associated with Kids and Family produces a much more targeted result than a search
+        /// based at the level of Used DVDs.
+        /// <p/>
+        /// Alternatively, by traversing up the browse node tree, you can determine the root category of an item.
+        /// You might do that, for example, to return the top seller of the root product category using the
+        /// TopSeller response group in an ItemSearch request.
+        /// <p/>
+        /// You can use BrowseNodeLookup iteratively to navigate through the browse node hierarchy to
+        /// reach the node that most appropriately suits your search. Then you can use the browse node ID in
+        /// an ItemSearch request. This response would be far more targeted than, for example,
+        /// searching through all of the browse nodes in a search index.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>BrowseNodeInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public BrowseNodeLookupResponse BrowseNodeLookup(params BrowseNodeLookupRequest [] request)
+        {
+            BrowseNodeLookup action = new BrowseNodeLookup();
+            return Invoke<BrowseNodeLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// List Search  Action
+        /// </summary>
+        /// <param name="request">List Search  request</param>
+        /// <returns>List Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// Given a customer name or Email address, the ListSearch operation
+        /// returns the associated list ID(s) but not the list items. To find those,
+        /// use the list ID returned by ListSearch with  ListLookup  .
+        /// <p/>
+        /// Specifying a full name or just a first or last name in the request typically
+        /// returns multiple lists belonging to different people. Using Email as the
+        /// identifier produces more filtered results.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>ListMinimum</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ListSearchResponse ListSearch(params ListSearchRequest [] request)
+        {
+            ListSearch action = new ListSearch();
+            return Invoke<ListSearchResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// List Lookup  Action
+        /// </summary>
+        /// <param name="request">List Lookup  request</param>
+        /// <returns>List Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The ListLookup operation returns, by default, summary information about a
+        /// list that you specify in the request. The summary information includes the:
+        /// <p/>
+        /// <ul>
+        /// <li>Creation date of the list</li>
+        /// <li>Name of the list's creator</li>
+        /// </ul>
+        /// <p/>
+        /// The operation returns up to ten sets of summary information per page.
+        /// <p/>
+        /// Lists are specified by list type and list ID, which can be found using ListSearch.
+        /// <p/>
+        /// You cannot lookup more than one list at a time in a single request.
+        /// You can, however, make a batch request to look for more than one list simultaneously.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>ListInfo</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListFull</li>
+        /// <li>ListItems</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Small</li>
+        /// <li>Subjects</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public ListLookupResponse ListLookup(params ListLookupRequest [] request)
+        {
+            ListLookup action = new ListLookup();
+            return Invoke<ListLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Customer Content Search  Action
+        /// </summary>
+        /// <param name="request">Customer Content Search  request</param>
+        /// <returns>Customer Content Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer Email address or name, the CustomerContentSearch
+        /// operation returns matching customer IDs, names, nicknames, and residence
+        /// information (city, state, and country). In general, supplying an Email
+        /// address returns unique results whereas supplying a name more often
+        /// returns multiple results.
+        /// <p/>
+        /// Often you use CustomerContentSearch to find a customer ID that you can
+        /// use in the CustomerContentLookup operation, which returns more
+        /// extensive customer information.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CustomerContentSearchResponse CustomerContentSearch(params CustomerContentSearchRequest [] request)
+        {
+            CustomerContentSearch action = new CustomerContentSearch();
+            return Invoke<CustomerContentSearchResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Customer Content Lookup  Action
+        /// </summary>
+        /// <param name="request">Customer Content Lookup  request</param>
+        /// <returns>Customer Content Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// For a given customer ID, the CustomerContentLookup operation
+        /// retrieves all of the information a customer has made public about
+        /// themselves on Amazon. Such information includes some or all of the following:
+        /// <p/>
+        /// <ul>
+        /// <li>AboutMe</li>
+        /// <li>Birthday</li>
+        /// <li>City, State and Country</li>
+        /// <li>Customer Reviews</li>
+        /// <li>Customer ID</li>
+        /// <li>Name</li>
+        /// <li>Nickname</li>
+        /// <li>Wedding Registry</li>
+        /// <li>WishList</li>
+        /// </ul>
+        /// <p/>
+        /// To find a customer ID, use the CustomerContentSearch operation.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>CustomerInfo</li>
+        /// <li>CustomerReviews</li>
+        /// <li>CustomerLists</li>
+        /// <li>CustomerFull</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CustomerContentLookupResponse CustomerContentLookup(params CustomerContentLookupRequest [] request)
+        {
+            CustomerContentLookup action = new CustomerContentLookup();
+            return Invoke<CustomerContentLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Similarity Lookup  Action
+        /// </summary>
+        /// <param name="request">Similarity Lookup  request</param>
+        /// <returns>Similarity Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SimilarityLookup operation returns up to ten products per page that are
+        /// similar to one or more items specified in the request. This operation is
+        /// typically used to pique a customer's interest in buying something similar to what they've already ordered.
+        /// <p/>
+        /// If you specify more than one item, SimilarityLookup returns the intersection of similar
+        /// items each item would return separately. Alternatively, you can use the SimilarityType
+        /// parameter to return the union of items that are similar to any of the specified items.
+        /// A maximum of ten similar items are returned; the operation does not return additional
+        /// pages of similar items. if there are more than ten similar items, running the same
+        /// request can result in different answers because the ten that are included in the
+        /// response are picked randomly.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>BrowseNodes</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>Large</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>Similarities</li>
+        /// <li>Tracks</li>
+        /// <li>VariationMinimum</li>
+        /// <li>Variations</li>
+        /// <li>VariationSummary</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SimilarityLookupResponse SimilarityLookup(params SimilarityLookupRequest [] request)
+        {
+            SimilarityLookup action = new SimilarityLookup();
+            return Invoke<SimilarityLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Seller Lookup  Action
+        /// </summary>
+        /// <param name="request">Seller Lookup  request</param>
+        /// <returns>Seller Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerLookup operation returns detailed information about sellers and,
+        /// in the US locale, merchants. To lookup a seller, you must use their seller ID.
+        /// The information returned includes the seller's name, location, average rating by
+        /// customers, and the first five customer feedback entries. SellerLookup will not,
+        /// however, return the seller's Email or business addresses.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Seller</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerLookupResponse SellerLookup(params SellerLookupRequest [] request)
+        {
+            SellerLookup action = new SellerLookup();
+            return Invoke<SellerLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Cart Get  Action
+        /// </summary>
+        /// <param name="request">Cart Get  request</param>
+        /// <returns>Cart Get  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartGet operation enables you to retrieve the IDs, quantities,
+        /// and prices of all of the items, including SavedForLater items in a
+        /// remote shopping cart.
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons,
+        /// such as availability, you should not keep a copy of a cart locally.
+        /// Instead, use CartGet to retrieve the items in a remote shopping cart.
+        /// <p/>
+        /// To retrieve the items in a cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned in the CartCreate operation.
+        /// A value similar to HMAC, URLEncodedHMAC, is also returned. This value is the
+        /// URL encoded version of the HMAC. This encoding is necessary because some
+        /// characters, such as + and /, cannot be included in a URL. Rather than
+        /// encoding the HMAC yourself, use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartGet does not work after the customer has used the PurchaseURL to either
+        /// purchase the items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartGet
+        /// requests must also include a value for AssociateTag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartGetResponse CartGet(params CartGetRequest [] request)
+        {
+            CartGet action = new CartGet();
+            return Invoke<CartGetResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Cart Add  Action
+        /// </summary>
+        /// <param name="request">Cart Add  request</param>
+        /// <returns>Cart Add  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartAdd operation enables you to add items to an existing remote shopping cart.
+        /// CartAdd can only be used to place a new item in a shopping cart. It cannot be used to increase
+        /// the quantity of an item already in the cart. If you would like to increase the quantity of
+        /// an item that is already in the cart, you must use the CartModify operation.
+        /// <p/>
+        /// You add an item to a cart by specifying the item's OfferListingId, or ASIN and ListItemId.
+        /// Once in a cart, an item can only be identified by its CartItemId. That is, an item in a cart
+        /// cannot be accessed by its ASIN or OfferListingId. CartItemId is returned by CartCreate, CartGet, and CartAdd.
+        /// <p/>
+        /// To add items to a cart, you must specify the cart using the CartId and HMAC values, which are
+        /// returned by the CartCreate operation.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all CartAdd requests must
+        /// also include a value for Associate Tag otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartAddResponse CartAdd(params CartAddRequest [] request)
+        {
+            CartAdd action = new CartAdd();
+            return Invoke<CartAddResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Cart Create  Action
+        /// </summary>
+        /// <param name="request">Cart Create  request</param>
+        /// <returns>Cart Create  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartCreate operation enables you to create a remote shopping cart.
+        /// A shopping cart is the metaphor used by most e-commerce solutions. It is a
+        /// temporary data storage structure that resides on Amazon servers. The
+        /// structure contains the items a customer wants to buy. In ECS, the shopping
+        /// cart is considered remote because it is hosted by Amazon servers.
+        /// In this way, the cart is remote to the vendor's web site where the customer
+        /// views and selects the items they want to purchase.
+        /// <p/>
+        /// Once you add an item to a cart by specifying the item's ListItemId and ASIN,
+        /// or OfferListing ID, the item is assigned a CartItemId and accessible only
+        /// by that value. That is, in subsequent requests, an item in a cart cannot
+        /// be accessed by its ListItemId and ASIN, or OfferListingId. CartItemId is
+        /// returned by CartCreate , CartGet , and CartAdd .
+        /// <p/>
+        /// Because the contents of a cart can change for different reasons, such as
+        /// item availability, you should not keep a copy of a cart locally. Instead,
+        /// use the other cart operations to modify the cart contents. For example,
+        /// to retrieve contents of the cart, which are represented by CartItemIds,
+        /// use CartGet .
+        /// <p/>
+        /// Available products are added as cart items. Unavailable items, for example,
+        /// items out of stock, discontinued, or future releases, are added as SaveForLaterItems.
+        /// No error is generated. The Amazon database changes regularly. You may find a product
+        /// with an offer listing ID but by the time the item is added to the cart the product
+        /// is no longer available. The checkout page in the Order Pipeline clearly lists
+        /// items that are available and those that are SaveForLaterItems.
+        /// <p/>
+        /// It is impossible to create an empty shopping cart. You have to add at least one
+        /// item to a shopping cart using a single CartCreate request. You can add specific
+        /// quantities (up to 999) of each item.
+        /// <p/>
+        /// CartCreate can be used only once in the life cycle of a cart. To modify the
+        /// contents of the cart, use one of the other cart operations.
+        /// <p/>
+        /// Carts cannot be deleted. They expire automatically after being unused for 7 days.
+        /// The lifespan of a cart restarts, however, every time a cart is modified.
+        /// In this way, a cart can last for more than 7 days. If, for example, on day 6,
+        /// the customer modifies a cart, the 7 day countdown starts over.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartCreateResponse CartCreate(params CartCreateRequest [] request)
+        {
+            CartCreate action = new CartCreate();
+            return Invoke<CartCreateResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Cart Modify  Action
+        /// </summary>
+        /// <param name="request">Cart Modify  request</param>
+        /// <returns>Cart Modify  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartModify operation enables you to:
+        /// <p/>
+        /// <ul>
+        /// <li>Change the quantity of items that are already in a remote shopping cart.</li>
+        /// <li>Move items from the active area of a cart to the SaveForLater area or the reverse</li>
+        /// <li>Change the MergeCart setting. </li>
+        /// </ul>
+        /// <p/>
+        /// To modify the number of items in a cart, you must specify the
+        /// cart using the CartId and HMAC values that are returned in the
+        /// CartCreate operation. A value similar to HMAC, URLEncodedHMAC,
+        /// is also returned. This value is the URL encoded version of the HMAC.
+        /// This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself,
+        /// use the URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// You can use CartModify to modify the number of items in a remote shopping
+        /// cart by setting the value of the Quantity parameter appropriately. You can
+        /// eliminate an item from a cart by setting the value of the Quantity parameter
+        /// to zero. Or, you can double the number of a particular item in the cart by
+        /// doubling its Quantity . You cannot, however, use CartModify to add new items to a cart.
+        /// <p/>
+        /// If the associated CartCreate request specified an AssociateTag, all
+        /// CartModify requests must also include a value for Associate Tag
+        /// otherwise the request will fail.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// <li>CartSimilarities</li>
+        /// <li>CartTopSellers</li>
+        /// <li>CartNewReleases</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartModifyResponse CartModify(params CartModifyRequest [] request)
+        {
+            CartModify action = new CartModify();
+            return Invoke<CartModifyResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Cart Clear  Action
+        /// </summary>
+        /// <param name="request">Cart Clear  request</param>
+        /// <returns>Cart Clear  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The CartClear operation enables you to remove all of the items in a remote shopping cart, including
+        /// SavedForLater items. To remove only some of the items in a cart or to reduce the quantity
+        /// of one or more items, use  CartModify  .
+        /// <p/>
+        /// To delete all of the items from a remote shopping cart, you must specify the cart using the
+        /// CartId and HMAC values, which are returned by the CartCreate operation. A value similar
+        /// to the HMAC, URLEncodedHMAC, is also returned. This value is the URL encoded version
+        /// of the HMAC. This encoding is necessary because some characters, such as + and /,
+        /// cannot be included in a URL. Rather than encoding the HMAC yourself, use the
+        /// URLEncodedHMAC value for the HMAC parameter.
+        /// <p/>
+        /// CartClear does not work after the customer has used the PurchaseURL to either purchase the
+        /// items or merge them with the items in their Amazon cart.
+        /// <p/>
+        /// Carts exist even though they have been emptied. The lifespan of a cart is 7 days since the
+        /// last time it was acted upon. For example, if a cart created 6 days ago is modified,
+        /// the cart lifespan is reset to 7 days.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Cart</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public CartClearResponse CartClear(params CartClearRequest [] request)
+        {
+            CartClear action = new CartClear();
+            return Invoke<CartClearResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Transaction Lookup  Action
+        /// </summary>
+        /// <param name="request">Transaction Lookup  request</param>
+        /// <returns>Transaction Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TransactionLookup operation returns information about up to ten purchases
+        /// that have already taken place. Transaction IDs are created whenever a purchase
+        /// request is made by a customer.
+        /// <p/>
+        /// For a specified transaction ID, TransactionLookup returns:
+        /// <ul>
+        /// <li>Price details</li>
+        /// <li>Sale date</li>
+        /// <li>Shipping details</li>
+        /// <li>Seller details</li>
+        /// <li>Item's condition </li>
+        /// </ul>
+        /// <p/>
+        /// For privacy reasons, this operation does not return information about the customer
+        /// who purchased the items.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>TransactionDetails</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public TransactionLookupResponse TransactionLookup(params TransactionLookupRequest [] request)
+        {
+            TransactionLookup action = new TransactionLookup();
+            return Invoke<TransactionLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Seller Listing Search  Action
+        /// </summary>
+        /// <param name="request">Seller Listing Search  request</param>
+        /// <returns>Seller Listing Search  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingSearch operation enables you to search for items offered
+        /// by specific sellers. You cannot use SellerListingSearch to look up items sold by merchants.
+        /// To look up an item sold by a merchant, use  ItemLookup   or  ItemSearch
+        /// along with the MerchantId parameter.
+        /// <p/>
+        /// SellerListingSearch returns the listing ID or exchange ID of an item.
+        /// Typically, you use those values with SellerListingLookup to find out more about those items.
+        /// <p/>
+        /// Each SellerListingSearch request returns up to ten items. By default, the first ten
+        /// items are returned. You can use the ListingPage parameter to retrieve additional pages
+        /// of (up to) ten listings.
+        /// <p/>
+        /// To use ECS, sellers must have less than 100,000 items for sale. Sellers that have more
+        /// items for sale should use, instead of ECS, other seller APIs, including the Amazon
+        /// Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerListingSearchResponse SellerListingSearch(params SellerListingSearchRequest [] request)
+        {
+            SellerListingSearch action = new SellerListingSearch();
+            return Invoke<SellerListingSearchResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Seller Listing Lookup  Action
+        /// </summary>
+        /// <param name="request">Seller Listing Lookup  request</param>
+        /// <returns>Seller Listing Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The SellerListingLookup operation enables you to return information
+        /// about a seller's listings, including product descriptions, availability,
+        /// condition, and quantity available. The response also includes the seller's nickname.
+        /// Each request requires a seller ID.
+        /// <p/>
+        /// You can also find a seller's items using ItemLookup. There are, however,
+        /// some reasons why it is better to use SellerListingLookup:
+        /// <p/>
+        /// <ul>
+        /// <li>SellerListingLookup enables you to search by seller ID.</li>
+        /// <li>SellerListingLookup returns much more information than ItemLookup.</li>
+        /// </ul>
+        /// <p/>
+        /// This operation only works with sellers who have less than 100,000 items for sale.
+        /// Sellers that have more items for sale should use, instead of ECS, other APIs,
+        /// including the Amazon Inventory Management System, and the Merchant@ API.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>SellerListing</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public SellerListingLookupResponse SellerListingLookup(params SellerListingLookupRequest [] request)
+        {
+            SellerListingLookup action = new SellerListingLookup();
+            return Invoke<SellerListingLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        
+        /// <summary>
+        /// Tag Lookup  Action
+        /// </summary>
+        /// <param name="request">Tag Lookup  request</param>
+        /// <returns>Tag Lookup  Response from the service</returns>
+        /// <remarks>
+        /// 
+        /// <p/>
+        /// The TagLookup operation returns entities based on specifying one to five tags.
+        /// A tag is a descriptive word that a customer uses to label entities on Amazon's retail website.
+        /// Entities can be items for sale, Listmania lists, guides, and so forth. For example, a customer might tag a
+        /// given entity with the phrase, "BestCookbook." For more information, see Tags.
+        /// <p/>
+        /// In the tag-related response groups, Tags and TagSummary specify the amount of informtion returned. The
+        /// other tag-related response groups, TaggedGuides, TaggedItems, and Tagged listmaniaLists,
+        /// specify the kind of entity tagged.
+        /// <p/>
+        /// <b>Available Response Groups</b>:
+        /// <ul>
+        /// <li>Request</li>
+        /// <li>Small</li>
+        /// <li>Accessories</li>
+        /// <li>AlternateVersions</li>
+        /// <li>BrowseNodes</li>
+        /// <li>Collections</li>
+        /// <li>EditorialReview</li>
+        /// <li>Images</li>
+        /// <li>ItemAttributes</li>
+        /// <li>ItemIds</li>
+        /// <li>Large</li>
+        /// <li>ListmaniaLists</li>
+        /// <li>Medium</li>
+        /// <li>MerchantItemAttributes</li>
+        /// <li>OfferFull</li>
+        /// <li>OfferListings</li>
+        /// <li>Offers</li>
+        /// <li>OfferSummary</li>
+        /// <li>PromotionDetails</li>
+        /// <li>PromotionSummary</li>
+        /// <li>Reviews</li>
+        /// <li>SalesRank</li>
+        /// <li>ShippingCharges</li>
+        /// <li>Similarities</li>
+        /// <li>Subjects</li>
+        /// <li>TaggedGuides</li>
+        /// <li>TaggedItems</li>
+        /// <li>TaggedListmaniaLists</li>
+        /// <li>TagsSummary</li>
+        /// <li>Tags</li>
+        /// <li>Tracks</li>
+        /// </ul>
+        ///   
+        /// </remarks>
+        public TagLookupResponse TagLookup(params TagLookupRequest [] request)
+        {
+            TagLookup action = new TagLookup();
+            return Invoke<TagLookupResponse>(action.WithRequest(request).ToDictionary());
+        }
+
+        // Private API ------------------------------------------------------------//
+
+        /**
+         * Configure HttpClient with set of defaults as well as configuration
+         * from AmazonECSConfig instance
+         */
+        private HttpWebRequest ConfigureWebRequest(int contentLength)
+        {
+            HttpWebRequest request = WebRequest.Create(config.ServiceURL) as HttpWebRequest;
+
+            if (config.IsSetProxyHost())
+            {
+                request.Proxy = new WebProxy(config.ProxyHost, config.ProxyPort);
+            }
+            request.UserAgent = config.UserAgent;
+            request.Method = "POST";
+            request.Timeout = 50000;
+            request.ContentType = "application/x-www-form-urlencoded";
+            request.ContentLength = contentLength;
+
+            return request;
+        }
+
+        /**
+         * Invoke request and return response
+         */
+        private T Invoke<T>(IDictionary<String, String> parameters)
+        {
+            String actionName = parameters["Operation"];
+            T response = default(T);
+            String responseBody = null;
+            HttpStatusCode statusCode = default(HttpStatusCode);
+
+            /* Add required request parameters */
+            AddRequiredParameters(parameters);
+
+            String queryString = GetParametersAsString(parameters);
+
+            byte[] requestData = this.config.InputEncoding.GetBytes(queryString);
+            HttpWebRequest request = ConfigureWebRequest(requestData.Length);
+
+            /* Submit the request and read response body */
+            try
+            {
+                using (Stream requestStream = request.GetRequestStream())
+                {
+                    requestStream.Write(requestData, 0, requestData.Length);
+                }
+                using (HttpWebResponse httpResponse = request.GetResponse() as HttpWebResponse)
+                {
+                    statusCode = httpResponse.StatusCode;
+                    StreamReader reader = new StreamReader(httpResponse.GetResponseStream(), Encoding.UTF8);
+                    responseBody = reader.ReadToEnd();
+                }
+                
+                ThrowIfErrors(responseBody, statusCode);
+
+                /* Attempt to deserialize response into <Action> Response type */
+                XmlSerializer serlizer = new XmlSerializer(typeof(T));
+                response = (T)serlizer.Deserialize(new StringReader(responseBody));
+            }
+            /* Web exception is thrown on unsucessful responses */
+            catch (WebException we)
+            {
+                using (HttpWebResponse httpErrorResponse = (HttpWebResponse)we.Response as HttpWebResponse)
+                {
+                    if (httpErrorResponse == null)
+                    {
+                        throw new AmazonECSException(we);
+                    }
+                    statusCode = httpErrorResponse.StatusCode;
+                    StreamReader reader = new StreamReader(httpErrorResponse.GetResponseStream(), Encoding.UTF8);
+                    responseBody = reader.ReadToEnd();
+                    
+                    ThrowIfErrors(responseBody, statusCode);
+                }
+            }
+            catch (Exception e)
+            {
+                if (e is AmazonECSException)
+                {
+                    throw e;
+                }
+                else
+                {
+                    throw new AmazonECSException("Internal Error", e);
+                }
+            }
+              
+            return response;
+         }
+
+
+
+        /**
+        * Checks for presense of the Errors in the response
+        * If errors found, constructs and throws AmazonECSException
+        * with information from the Errors
+        *
+        */
+        private void ThrowIfErrors (String responseString, HttpStatusCode status) 
+        {
+            if (responseString.IndexOf("<Error>") != -1)
+            {
+                Match errorMatcher = Regex.Match(responseString, "<RequestId>(.*)</RequestId>.*" +
+                    "(<Error><Code>(.*)</Code><Message>(.*)</Message></Error>).*(<Error>)?");
+                if (errorMatcher.Success)
+                {
+                    String requestId = errorMatcher.Groups[1].Value;
+                    String xml = errorMatcher.Groups[2].Value;
+                    String code = errorMatcher.Groups[3].Value;
+                    String message = errorMatcher.Groups[4].Value;
+                    AmazonECSException ex = new AmazonECSException(message, status, code, requestId, xml);
+                    throw ex;
+                }
+            }
+        }
+       
+
+        /**
+         * Add authentication related and version parameters
+         */
+        private void AddRequiredParameters(IDictionary<String, String> parameters)
+        {
+            parameters.Add("AWSAccessKeyId", this.awsAccessKeyId);
+            parameters.Add("Version", config.ServiceVersion);
+            parameters.Add("AssociateTag", this.associateTag);
+        }
+
+        /**
+         * Convert Disctionary of paremeters to Url encoded query string
+         */
+        private string GetParametersAsString(IDictionary<String, String> parameters)
+        {
+            StringBuilder data = new StringBuilder();
+            foreach (String key in (IEnumerable<String>)parameters.Keys)
+            {
+                String value = parameters[key];
+                if (value != null && value.Length > 0)
+                {
+                    data.Append(key);
+                    data.Append('=');
+                    data.Append(HttpUtility.UrlEncode(value, this.config.InputEncoding));
+                    data.Append('&');
+                }
+            }
+            String stringData = data.ToString();
+            if (stringData.EndsWith("&")) 
+            {
+                stringData = stringData.Remove(stringData.Length - 1, 1);
+            }
+            return stringData;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Properties/AssemblyInfo.cs b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..5113e9c
--- /dev/null
+++ b/src/Extensions/Banshee.Amazon/amazon-ecs-2007-07-16-cs-library/src/Amazon.ECS/Properties/AssemblyInfo.cs
@@ -0,0 +1,11 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("AmazonECS CSharp Library")]
+[assembly: AssemblyProduct("Amazon.ECS")]
+[assembly: ComVisible(false)]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+ 
\ No newline at end of file



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